iOS CoreBluetooth无法在后台接收通知

时间:2016-10-07 18:42:51

标签: ios swift background core-bluetooth

我正在编写一个应该能够连接到Ble设备并接收其中一个特征的更新的应用。

我能够发现我想连接的设备,连接到它,并注册我感兴趣的特征的通知。

每当应用收到此特性的更新时,它都会通过http呼叫将值发送到服务器。

一切都在前台工作正常,但是一旦我背景我的应用程序,它就会停止接收更新。我添加了

<key>UIBackgroundModes</key>
<array>
    <string>bluetooth-central</string>
    <string>bluetooth-peripheral</string>
</array>

到我的plist文件。 我在运行iOS 9.3的iPhone6上测试。使用Xcode 8和swift 2.3进行开发。 Ble设备每10秒发送一次通知,但应用程序不会处理bakground中的通知。

2 个答案:

答案 0 :(得分:2)

我发现了这个问题。

我正在实例化对象,负责我的AppDelegate中的所有扫描,连接,阅读等。 一旦我将它移动到ViewController,它就开始在后台运行得很好。不知道为什么。

答案 1 :(得分:0)

您需要在项目/功能中添加蓝牙所需背景模式的功能 由于您可以在前景中使用蓝牙,我相信您已添加了必要的权利