2017-03-05 35 views
0

我正在開發我的第一款Android應用程序,這是一款基本的棋盤遊戲,我正在執行基於回合制多人遊戲的Google Play遊戲服務。我可以從一臺設備開始匹配,在另一臺設備上接收通知(通過Play遊戲應用/通知)並接受邀請。我可以在沒有任何問題的情況下在接收設備上播放第一個回合,並在設備上顯示匹配是從哪個設備創建的。但是,當我從設備開始下一個回合時,創建了匹配,它不會顯示在接收設備上。OnTurnBasedMatchReceived未叫

我已經實現了一個OnTurnBasedMatchUpdateReceive偵聽器(OnTurnBasedMatchReceived),它會在第一個設備上調用,但不會在第二個設備上進行更新時調用。

@Override 
public void onConnected(Bundle connectionHint) { 
    Games.TurnBasedMultiplayer.registerMatchUpdateListener(mGoogleApiClient, this); 
} 

和監聽:監聽器獲取的onConnected方法註冊

@Override 
public void onTurnBasedMatchReceived(TurnBasedMatch match) { 
    byte[] data = match.getData(); 
    ... 
} 

有沒有什麼辦法來檢查與調試器或任何其他的工具,如果聽者正確註冊?如果我在Play遊戲應用程序中檢查通知,它會說我輪到了,所以操作系統正在接收它們,但它不會通過我的應用程序。

+1

在onTurnBasedMatchReceived頂部添加一個日誌標記以查看它是否到達那裏,或者如果代碼中存在錯誤的東西 – Zoe

+0

所以我添加了日誌記錄,並且它在應該被調用時不會出現在日誌中,所以我認爲這意味着它永遠不會被調用。 – delta772er

+0

查看GPGS多人模式的[轉彎](https://developers.google.com/games/services/android/turnbasedMultiplayer#taking_a_turn)指南。要實現這個功能,您可能需要將[OnTurnBasedMatchUpdateReceivedListener](https://developer.android.com/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html)附加到您的活動中。 – noogui

回答

0

我有完全相同的問題。原來,這是因爲我在同一個帳戶上反對自己,所以參與者,我正在通過takeTurn()是我自己的。