3

当我的应用程序在后台时,我希望能够通过蓝牙发现其他 iOS 设备。当我的应用程序不在前台时,是否可以使用 Bonjour 或 Game Kit 进行此发现?

如果发现兼容设备,是否可以执行此操作并发出通知?

另外,我可以在播放音频时在后台运行并进行此检测吗?

4

1 回答 1

4

当您的应用程序暂停时,这是不可能的。来自iOS 应用程序编程指南

在暂停之前取消任何与 Bonjour 相关的服务。当您的应用程序移动到后台时,在它被挂起之前,它应该从 Bonjour 注销并关闭与任何网络服务关联的侦听套接字。挂起的应用程序无论如何都无法响应传入的服务请求。关闭这些服务可以防止它们在实际不可用时看起来可用。如果您不自行关闭 Bonjour 服务,系统会在您的应用程序暂停时自动关闭这些服务。

准备好处理基于网络的套接字中的连接故障。当您的应用程序由于多种原因挂起时,系统可能会断开套接字连接。只要您的基于套接字的代码为其他类型的网络故障(例如丢失信号或网络转换)做好准备,就不会导致任何异常问题。当您的应用程序恢复时,如果它在使用套接字时遇到故障,只需重新建立连接。

但是,如果您的应用程序正在流式传输音频,则它必须保持网络连接,因此您应该能够在后台执行 Bonjour 发现,以便应用程序连续播放音频。确保您不会通过循环播放无声音频剪辑来滥用此功能,以便您可以留在后台,否则您的应用程序将被拒绝。

于 2010-11-17T15:43:07.167 回答