我想让你明白我的英语水平不好。 我正在使用核心蓝牙开发一个应用程序。
我检查了运行应用程序一次后我可以在后台进行蓝牙工作(扫描、连接、获取服务)。 但是,我想知道是否可以在不运行应用程序的情况下在后台模式下进行 CoreBluetooth 通信。
例如,一旦在外围设备上启动测量,中央应用程序将检测到它们并在后台模式下运行。
可能吗? 很抱歉没有代码。现在我没有办法开始。
我想你要找的是 核心蓝牙状态保存和恢复.根据文档:
由于状态保留和还原内置于 Core Bluetooth,因此你的应用可以选择启用此功能,要求系统保留应用的中央和外围管理器的状态,并继续代表它们执行某些与蓝牙相关的任务,即使你的应用不再运行也是如此。
当您选择加入状态恢复时,您的应用将在某些 BLE 相关事件后重新启动到后台。特别是,它会跟踪以下内容:
- 中央管理器正在扫描的服务(以及扫描开始时指定的任何扫描选项)
- 中央管理器尝试连接或已经连接的外围设备
- 中央管理器订阅的特征
请注意,当你的应用使用状态还原和后台执行时,你可以执行的操作存在限制(你可能已经意识到这一点)。
希望有帮助
PS:我们发现状态恢复仅在您的iOS设备未通过USB电缆连接到开发计算机时才有效(现在Xcode 9可能有所不同)。