Android 基于回合的游戏玩家接收自己的数据,而不需要对手调用takeTurn

Android 基于回合的游戏玩家接收自己的数据,而不需要对手调用takeTurn,android,google-play-services,Android,Google Play Services,我一直在实施我自己的回合制棋盘游戏。整个游戏是基于PlayGameService的一些修改 我的问题是,玩家有时会通过takeTurn()接收自己发送给对手的数据。我已经多次检查getnextparticipandi()是否返回正确的id。例如,我的仿真器保存了一个移动数据,并将其正确发送到我的实际Android手机,我的手机取消持久化,如示例所示。几秒钟后,我的仿真器接收到相同的数据,而没有实际设备将其持久化并调用takeTurn()。这种情况有时也会发生在游戏开始的第一回合,emulator

我一直在实施我自己的回合制棋盘游戏。整个游戏是基于PlayGameService的一些修改

我的问题是,玩家有时会通过
takeTurn()
接收自己发送给对手的数据。我已经多次检查
getnextparticipandi()
是否返回正确的id。例如,我的仿真器保存了一个移动数据,并将其正确发送到我的实际Android手机,我的手机取消持久化,如示例所示。几秒钟后,我的仿真器接收到相同的数据,而没有实际设备将其持久化并调用
takeTurn()
。这种情况有时也会发生在游戏开始的第一回合,emulator接收到第一个“虚拟”回合数据,而实际设备还没有发送任何信息。它不是每转一圈都发生,只是偶尔发生


这可能与我的Google Play控制台设置有关,还是这些设置会缓冲一些时间,然后在某个时间释放?

由于您没有给出任何代码,我无法确定问题所在。但为了便于解释,只要比赛继续进行,比赛就会包含数据,无论轮到你与否。要精确定位发生这种情况的确切位置,请检查updatematch()的执行情况,因为它必须在没有实际需要的情况下启动。(登录、重新连接、启动、连接提示等)。不能确定你的代码,但另一种绕过bug的方法是,你可以在turncounter上加上检查MATCH\u TURN\u STATUS\u MY\u TURN,否则通过空值。希望它能帮助我,没有你的代码我也无能为力。

似乎我只是忘记了总是从“检查游戏”界面中删除旧游戏,这就是为什么它会在一段时间后发送相同的数据,而我已经在和同一个对手玩新游戏