iOS CoreBluetooth 无法在后台接收通知
iOS CoreBluetooth can't receive notifications in background
我正在编写一个应该能够连接到 Ble 设备并接收其中一个特性的更新的应用程序。
我能够发现我想要连接的设备,连接到它,并注册接收有关我感兴趣的特征的通知。
每次应用程序收到此特征的更新时,它都会通过 http 调用将值发送到服务器。
前台一切正常,但我的应用程序后台运行后,它就停止接收更新。我加了
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
<string>bluetooth-peripheral</string>
</array>
到我的 plist 文件。
我正在 iPhone6 plus 运行 iOS 9.3 上进行测试。使用 Xcode 8 和 swift 2.3 进行开发。 Ble 设备每 10 秒发送一次通知,但应用程序不会在后台处理通知。
您需要在 Project/capabilities 中添加蓝牙所需后台模式的功能
由于您可以在前台使用蓝牙,我相信您已经添加了必要的权利
我发现了问题。
我正在实例化对象,负责我的 AppDelegate 中的所有扫描、连接、读取等。
一旦我将它移动到 ViewController 它就开始在后台正常工作。不知道为什么。
我正在编写一个应该能够连接到 Ble 设备并接收其中一个特性的更新的应用程序。
我能够发现我想要连接的设备,连接到它,并注册接收有关我感兴趣的特征的通知。
每次应用程序收到此特征的更新时,它都会通过 http 调用将值发送到服务器。
前台一切正常,但我的应用程序后台运行后,它就停止接收更新。我加了
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
<string>bluetooth-peripheral</string>
</array>
到我的 plist 文件。 我正在 iPhone6 plus 运行 iOS 9.3 上进行测试。使用 Xcode 8 和 swift 2.3 进行开发。 Ble 设备每 10 秒发送一次通知,但应用程序不会在后台处理通知。
您需要在 Project/capabilities 中添加蓝牙所需后台模式的功能 由于您可以在前台使用蓝牙,我相信您已经添加了必要的权利
我发现了问题。
我正在实例化对象,负责我的 AppDelegate 中的所有扫描、连接、读取等。 一旦我将它移动到 ViewController 它就开始在后台正常工作。不知道为什么。