У меня проблема с API Google Play игровых сервисов. Я правильно получаю GoogleSignAccount. Затем я открываю комнату, создавая RealtimeMultiplayerClient. Когда я пытаюсь отправить что-либо в надежном режиме, я не могу отследить сообщение, и слушатель получателя никогда не вызывается. Я пробовал только с двумя игроками, и я заметил, что номер комнаты для них различен (в действительности он имеет форму XXX____YYY и строка XXX одинакова для них). Код для отправки сообщения следующий:
private final RealTimeMultiplayerClient.ReliableMessageSentCallback mySentListener = new RealTimeMultiplayerClient.ReliableMessageSentCallback() {
@Override
public void onRealTimeMessageSent(int statusCode, int tokenId, String recipientParticipantId) {
Log.d(TAG, "RealTime message sent");
Log.d(TAG, " statusCode: " + statusCode);
Log.d(TAG, " tokenId: " + tokenId);
Log.d(TAG, " recipientParticipantId: " + recipientParticipantId);
}
};
public void sendReliable(final String playerId) {
final Task<Integer> sendTask = GoogleRoom.getInstance().getRealTimeMultiplayerClient()
.sendReliableMessage(buffer, GoogleRoom.mRoomId, playerId, mySentListener);
sendTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG, "Failure " + e);
}
});
sendTask.addOnCompleteListener(new OnCompleteListener<Integer>() {
@Override
public void onComplete(@NonNull Task<Integer> task) {
Log.d(TAG, "Completed");
}
});
sendTask.addOnCanceledListener(new OnCanceledListener() {
@Override
public void onCanceled() {
Log.d(TAG, "Canceled");
}
});
}
Странно то, что слушателя не зовут. Любое предложение?