java - Google Play 服务多人玩家的连接

标签 java android google-play-services

我的问题是我不明白如何判断玩家何时断开连接。

所以我的游戏包括 2 名玩家,游戏本身可以运行,当一名玩家按预期离开游戏或关闭管理器中的应用程序时,一切都很好,但是当一名玩家失去互联网连接时,什么也没有发生。我尝试通过禁用一名玩家设备上的互联网连接来实现这一点。

当一名玩家离开游戏时,RoomStatusUpdateCallback 按以下顺序调用方法: 1.onDisconnectedFromRoom 2.onPeerLeft 3.onPeersDisconnected,但是当玩家失去互联网连接时,不会调用任何内容。我想知道一名玩家何时失去连接。

我相信有像ConnectivityManager这样的东西,所以我可能可以在一个玩家的设备上使用它,但是当RoomStatusUpdateCallback时,第二个玩家如何知道第一个玩家失去了连接什么也没说?

最佳答案

每当玩家因网络连接或服务器问题而断开连接时,参与者的连接状态都不会更改,直到您调用离开房间。当其他玩家断开连接时,您可以使用 RoomStatusUpdateListener 方法监控房间内参与者的连接状态,如下所示:

1.onDisconnectedFromRoom
2.onPeerLeft
3.onPeersDisconnected

查看全文 documentation关于处理房间创建错误。

我认为您可以尝试在客户端上实现自定义观察者计时器,该计时器将重复 ping 其他对等点以查看它们是否仍处于连接状态。

关于java - Google Play 服务多人玩家的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246098/

相关文章:

java - Collections.sort() 方法未正确选择重载方法

android - fragment 中带有选项卡的抽屉导航

android:在没有 GET_ACCOUNTS 权限和 AccountPicker 的情况下获取设备上的谷歌帐户列表

android - Android Geofences 是否保持 Activity 状态直到删除/过期或仅直到我的 PendingIntent 启动

Android 应用支持零设备?

java - Hibernate Envers L2 缓存

java - 以正确的方式复制数组

android - Firebase 仅获取以下用户的帖子

android - 如何在 <gettype> ant 目标中指定 AndroidManifest.xml 文件的路径?

java - 带数字键的 MVEL 表达式