2015-12-13 5 views
0

Когда игрок по очереди, я получаю уведомления в строке уведомлений вместо прослушивания его в своей игре, а его работыAndroid пошаговая игра слушатели не работают

  1. Реализовать OnInvitationReceivedListener и OnTurnBasedMatchUpdateReceivedListener

  2. В onConnected (соединение для подключения) i добавлено Games.Invitations.registerInvitationListener (mGoogleApi Клиент, это) и Games.TurnBasedMultiplayer.registerMatchUpdateListener (mGoogleApiClient это)

  3. заместить эти методы

    @Override 
    public void onTurnBasedMatchReceived(TurnBasedMatch match) { 
        Toast.makeText(this, "A match was updated.",Toast.LENGTH_LONG).show(); 
    } 
    
    @Override 
    public void onTurnBasedMatchRemoved(String s) { 
        Toast.makeText(this, "A match was canceled.",Toast.LENGTH_LONG).show(); 
        finish(); 
    } 
    
    @Override 
    public void onInvitationReceived(Invitation invitation) { 
        Toast.makeText(this, "An invitation received.",Toast.LENGTH_LONG).show(); 
    } 
    
    @Override 
    public void onInvitationRemoved(String s) { 
        Toast.makeText(this, "An invitation removed.",Toast.LENGTH_LONG).show(); 
    } 
    

Я не могу получить код для прослушивания приглашений/уведомления, были получены.

ответ

0

Если вы ввете игру, нажав на уведомление, то матч будет передан как 'connectionHint' в onConnected(). Вы можете проверить это с помощью следующего кода:

public void onConnected(Bundle connectionHint) { 
     Log.d(TAG, "onConnected(): Connection successful"); 

     // Retrieve the TurnBasedMatch from the connectionHint 
     if (connectionHint != null) { 
      mTurnBasedMatch = connectionHint.getParcelable(Multiplayer.EXTRA_TURN_BASED_MATCH); 

      if (mTurnBasedMatch != null) { 
       if (mGoogleApiClient == null || !mGoogleApiClient.isConnected()) { 
        Log.d(TAG, "Warning: accessing TurnBasedMatch when not connected"); 
       } 

       updateMatch(mTurnBasedMatch); 
       return; 
      } 
     } 

     // handle registering callbacks and updating status here.... 
    } 

слушателей нужны, только если вы хотите обрабатывать эти уведомления в приложении, когда приложение работает, так что вам не нужно, чтобы проигрыватель выйти на панель уведомлений, через игровые игры и обратно в ваше приложение.

+0

Уже сделано, проблема в том, что игра запущена, а другой игрок делает поворот, игра не обнаруживает его, и я получаю уведомление в панели уведомлений, это моя очередь. –

+0

Вы имеете в виду onTurnBasedMatchReceived() не вызывается ? Я построил образец, и я вижу сообщение с тостом: Toast.makeText (это, «Совпадение было обновлено», Toast.LENGTH_LONG) .show(); Включен ли поворот в вашей связанной конфигурации приложения в Play Console? –

+0

Да, он никогда не будет вызван, повернут и работает в режиме реального времени, не могли бы вы поделиться с образцом, который вы создали? –

Смежные вопросы