iOS 8.1 中的 BLE 后台模式

Posted

技术标签:

【中文标题】iOS 8.1 中的 BLE 后台模式【英文标题】:BLE background mode in iOS 8.1 【发布时间】:2014-10-29 11:13:53 【问题描述】:

我一直在研究通过 BLE 接收健康数据的应用程序。它在后台正常工作,并在特定条件下发送通知。 不幸的是,当我安装 ios 8.1 时出现了问题。它不会在后台触发 peripheral:didUpdateValueForCharacteristic。当我将应用程序返回前台时 - 它会正确接收数据。

在 Info.plist -> UIBackgroundModes bluetooth-central 添加。

我的测试表明,在 8.0 中它仍然可以工作。

【问题讨论】:

我的设备更新到 iOS 8.1 后收到后台通知。您的问题可能与国家保护和恢复有关吗? 【参考方案1】:

我创建了要在 AppDelegate.sharedInstance 中使用的蓝牙管理器。

BLEManager 的初始化是在 init 的 AppDelegate 中进行的,应该在 ApplicationDidFinishLaunchingWithOptions 中完成。

移动其初始化后,它开始工作。 iOS 行为有时是未知的。更好地在应用加载并准备就绪时初始化您的管理器!

【讨论】:

哇,你救了我几天的脑袋!谢谢你!!我有一个初始化蓝牙管理器的静态方法,但为时过早并将其移至ApplicationDidFinishLaunchingWithOptions 并且后台模式开始工作。谢谢谢谢!!

以上是关于iOS 8.1 中的 BLE 后台模式的主要内容,如果未能解决你的问题,请参考以下文章

iOS 在后台模式下从广告中省略制造商数据

Cordova:在后台模式下扫描 iBeacons / BLE(iOS 和 Android)

在 iOS 后台实现 BLE 扫描

iBeacons 在 iOS 中以后台模式扫描?

在 iOS 的后台模式下将数据从 Central 传输到外围设备

iOS - 在后台扫描 BLE 设备