Android TurnBasedMultiplayer调用takeTurn()不会生成onTurnBasedMatchReceived()
我正在使用Android TurnBasedMultiplayer调用takeTurn()不会生成onTurnBasedMatchReceived(),android,google-play-games,Android,Google Play Games,我正在使用Google的turnbasedmultiplayerapi编写一个多人游戏,并调用takeTurn()。我在游戏中有三个玩家,除了调用takeTurn的玩家之外,我发现一个玩家收到了更新,并且正确调用了onTurnBasedMatchReceived(),而另一个玩家没有收到更新,onTurnBasedMatchReceived() 有人能给我一个可能的原因不是所有的玩家都收到更新吗?我注意到,没有收到更新的玩家需要返回比赛收件箱并再次选择相关比赛,然后可以看到游戏实际上已经更新。是
Google的turnbasedmultiplayerapi
编写一个多人游戏,并调用takeTurn()
。我在游戏中有三个玩家,除了调用takeTurn的玩家之外,我发现一个玩家收到了更新,并且正确调用了onTurnBasedMatchReceived()
,而另一个玩家没有收到更新,onTurnBasedMatchReceived()
有人能给我一个可能的原因不是所有的玩家都收到更新吗?我注意到,没有收到更新的玩家需要返回比赛收件箱并再次选择相关比赛,然后可以看到游戏实际上已经更新。是不是在比赛中没有完全收到更新的玩家?未接受邀请的玩家将不会接到到
onturnbasedMatchUpdate
的呼叫
此外,当玩家收到邀请时,这将转到邀请侦听器,而不是匹配更新的侦听器。如果您试图同时使用match updated listener,这也可以解释为什么您没有得到更新。您是否激活了该listener。我在我的主要活动中使用这样的代码 公共类游戏屏幕在InvitationReceivedListener上扩展活动实现, OnTurnBasedMatchUpdateReceivedListener{ ...
}如果您正确配置了,则当您调用
takeTurn()
并更新比赛状态时,确实应该更新游戏中的所有玩家。您能否分享一些代码,说明如何注册这些侦听器以及如何调用takeTurn()
?这可能会对您的特定问题有所帮助。@Override public void onTurnBasedMatchReceived(TurnBasedMatch-match-match){Toast.makeText(这是“已更新的匹配)”,Toast_DELAY.show();updateMatch(match);}Games.TurnBasedMultiplayer.takeTurn(getApiClient(),mMatch.getMatchId(),mTurnData.persist()setResultCallback(new ResultCallback(){@Override public void onResult(TurnBasedMultiplayer.UpdateMatchResult result){processResult(result);}});是的,这个运动员完全参加了比赛。这不是邀请。谢谢你的提问。我怀疑这是正在使用的三星上的同步问题,但我找不到在设备上设置自动同步的位置,因此我无法验证这一点并回答我自己的问题。