在 Apple 的后台执行文档中,解释说“任何支持蓝牙数据后台处理的应用程序都必须是基于会话的。... 应用程序必须提供一个接口,允许用户启动和停止蓝牙事件的传递。然后,该界面应根据需要打开或关闭会话。
我们的 iOS 应用程序充当 CBPeripheralManager 与 OS X 上的 CBCentralManager 通信。我们在阻止应用程序暂停和对来自中央管理器的通信无响应时遇到问题。
我们在应用程序的 Info.plist 文件中使用 bluetooth-peripheral 值声明 UIBackgroundModes 键,这应该让 iOS 允许我们在后台操作并减少限制。在后台,我们的应用程序处理来自中央的通信并按预期回复数小时,但最终被暂停。
该文档暗示我们应该管理一个会话,也许以 NSURLSession 管理会话的方式,但没有 NSSession 或 CBSession 之类的东西,我在文档中找不到与 Core Bluetooth 相关的 Session 的其他提及。
有任何想法吗?