我想要的是让我的iOS设备一直在宣传Bluetooth LE服务,即使该应用未运行时也是如此,这样我就可以让另一个iOS设备对其进行扫描并找到它。我在这里遵循了Apple的背景说明:
我可以让它在前景中做广告,有时甚至在后台做广告,但它不会一直保持广告状态。如果您将其设置为在后台运行,那么它是否不应该在设备重启后就开始播发广告,就像后台位置服务在重启后自动开始工作一样?它们对背景的限制是否没有在Apple文档中列出(或很难找到)?有人在后台正确演示核心蓝牙外围设备广告吗?
谢谢...
如果将bluetooth-peripheral
背景模式添加到应用程序的plist,则可以进行背景广告。完成此操作后,即使后台运行,您的应用也将继续接收回调。
广告是一个棘手的野兽,因为Apple实施了一些优化措施来减少功耗,并且一旦应用程序被后台运行,这些措施就会降低广告的质量。即:费率大幅降低,不包括广告服务,也不包括本地名称。一旦应用回到前台,这些限制就会失效。
在一般情况下,这种后台操作需要运行应用程序。借助iOS 7,已实现了恢复过程,该过程允许OS在终止时代表应用执行操作,并在即将进行某些传输或其他操作时恢复应用。这需要你恢复键添加到的初始化选项CBPeripheralManager
/ CBCentralManager
。仍然需要一次启动您的应用程序,但是此后,iOS将继续充当中心/外围设备的BLE外观。
更新:我在Apple bluetooth-dev列表上也遇到了这个问题,发现Core Bluetooth管理器被声明在重启后无法恢复。任何文档中都没有对此进行描述,但是在WWDC视频中可能已经提到了这一点。我们应该提交一个错误并进行复制以提高Apple的知名度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句