Google Play Game Services никогда не отправлял сообщения - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблема с 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");
           }
    });
}

Странно то, что слушателя не зовут. Любое предложение?

...