核心蓝牙在不运行应用程序的情况下无法通信?



我想让你明白我的英语水平不好。 我正在使用核心蓝牙开发一个应用程序。

我检查了运行应用程序一次后我可以在后台进行蓝牙工作(扫描、连接、获取服务)。 但是,我想知道是否可以在不运行应用程序的情况下在后台模式下进行 CoreBluetooth 通信。

例如,一旦在外围设备上启动测量,中央应用程序将检测到它们并在后台模式下运行。

可能吗? 很抱歉没有代码。现在我没有办法开始。

我想你要找的是 核心蓝牙状态保存和恢复.根据文档:

由于状态保留和还原内置于 Core Bluetooth,因此你的应用可以选择启用此功能,要求系统保留应用的中央和外围管理器的状态,并继续代表它们执行某些与蓝牙相关的任务,即使你的应用不再运行也是如此。

当您选择加入状态恢复时,您的应用将在某些 BLE 相关事件后重新启动到后台。特别是,它会跟踪以下内容:

  • 中央管理器正在扫描的服务(以及扫描开始时指定的任何扫描选项)
  • 中央管理器尝试连接或已经连接的外围设备
  • 中央管理器订阅的特征

请注意,当你的应用使用状态还原和后台执行时,你可以执行的操作存在限制(你可能已经意识到这一点)。

希望有帮助

PS:我们发现状态恢复仅在您的iOS设备未通过USB电缆连接到开发计算机时才有效(现在Xcode 9可能有所不同)。

相关内容

最新更新