GKSession:暂停App后不可见

时间:2011-09-02 14:26:35

标签: ios ipad gamekit gksession

我正在使用GameKit工作一段时间。几乎一切都很好。我有一个主要问题,session:peer:didChangeState:方法在恢复后没有被调用。

在Apple示例GKRocket中,如果应用程序暂停(willTerminate)并在其返回时设置(willResume),会话将被销毁。对于我的应用程序,最好保持会话。

在我可以看到的日志中,当应用程序挂起时,会调用状态为GKPeerStateUnavailable的session:peer:didChangeState:,但是在恢复使用GKPeerStateAvailable的调用后不会显示。会议可用。但即使是新客户也无法找到该设备。

我使用SessionModes服务器/客户端。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

前段时间我正在玩会话,但有一些建议......

- 恢复后,如果您尝试从正在睡觉的设备发送打包到清醒的设备会发生什么?它会通过吗?

- 你需要GKPeerStateUnavailable / available吗?根据我的经验,您需要使用的是applicationDidBecomeActive和applicationWillResignActive方法:当您进入睡眠状态时,您可以在唤醒时将GAME_PAUSED发送到其他设备 - GAME_UNPAUSED。如果用户将应用程序置于睡眠状态然后关闭它 - 好吧,运气不好,其他玩家将永远坐在那里(所以你可以选择退出主菜单)。这种方法适用于苹果(在批准方面) - 在两个应用程序上测试。 此致!