我希望能够在我的应用程序处于后台时通过蓝牙发现其他iOS设备。当我的应用程序不在前台时,是否可以使用Bonjour或Game Kit进行此发现?
是否可以执行此操作并在发现兼容设备时触发通知?
另外,我可以在播放音频时在后台运行并进行此检测吗?
答案 0 :(得分:4)
暂停申请时无法执行此操作。来自iOS Application Programming Guide:
在被暂停之前取消任何与Bonjour相关的服务。当你的 应用程序移动到后台, 它应该暂停之前 从Bonjour取消注册并关闭 与任何相关的侦听套接字 网络服务。暂停了 应用程序无法响应传入 无论如何服务请求。关闭 这些服务阻止了他们 他们似乎可以使用 实际上不是。如果你不关闭 Bonjour服务自己, 系统关闭这些服务 当你的申请是自动的 暂停。
准备好处理基于网络的连接失败 插座。系统可能会拆除 你的套接字连接 申请暂停任何 原因多少。只要你的 基于套接字的代码准备好了 其他类型的网络故障,例如 作为丢失的信号或网络 转型,这不应该导致 任何异常问题。当你的 应用程序恢复,如果它遇到 简单地说,使用套接字失败了 重建连接。
但是,如果您的应用程序是流式传输音频,则必须保持网络连接,因此您应该能够在后台为应用程序连续播放音频进行Bonjour发现。请确保您不要通过在循环中播放静音音频片段来滥用此功能,以便您可以留在后台,或者您的应用程序将被拒绝。