Я использую встроенный пользовательский интерфейс Google Play для обработки матчей с многопользовательской игрой Google для Android и имею две проблемы с предоставленными уведомлениями.
- Между словом «с» и именем противника существует проблема с пробелами в тексте.В данном случае «garguno».
- Нажатие «Игнорировать» в этом уведомлении полностью удаляет игру из списка активных игр.Я не нашел способа вернуть игру в этом случае.
Я хотел бы выяснить, как решить обе эти проблемы, но мне очень трудно найти какую-либо документацию окак работают пошаговые уведомления и / или как настроить их функциональность.Спасибо за любую помощь.
Документация, предоставленная здесь описывает возможности dismissInvitation () и dismissMatch (), но ни один из этого кода не находится в моем собственном приложении, так как я просто используювстроенный пользовательский интерфейс для обработки совпадений, т. е. (из ссылки 1):
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_SELECT_PLAYERS) {
if (resultCode != Activity.RESULT_OK) {
// Canceled or other unrecoverable error.
return;
}
ArrayList<String> invitees = data.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS);
// Get automatch criteria
Bundle autoMatchCriteria = null;
int minAutoPlayers = data.getIntExtra(Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS, 0);
int maxAutoPlayers = data.getIntExtra(Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS, 0);
TurnBasedMatchConfig.Builder builder = TurnBasedMatchConfig.builder()
.addInvitedPlayers(invitees);
if (minAutoPlayers > 0) {
builder.setAutoMatchCriteria(
RoomConfig.createAutoMatchCriteria(minAutoPlayers, maxAutoPlayers, 0));
}
Games.getTurnBasedMultiplayerClient(this, GoogleSignIn.getLastSignedInAccount(this))
.createMatch(builder.build()).addOnCompleteListener(new OnCompleteListener<TurnBasedMatch>() {
@Override
public void onComplete(@NonNull Task<TurnBasedMatch> task) {
if (task.isSuccessful()) {
TurnBasedMatch match = task.getResult();
if (match.getData() == null) {
// First turn, initialize the game data.
// (You need to implement this).
initializeGameData(match);
}
// Show the turn UI.
// (Game specific logic)
showTurnUI(match);
} else {
// There was an error. Show the error.
int status = CommonStatusCodes.DEVELOPER_ERROR;
Exception exception = task.getException();
if (exception instanceof ApiException) {
ApiException apiException = (ApiException) exception;
status = apiException.getStatusCode();
}
handleError(status, exception);
}
}
}); } }