我正在编写一个应该能够连接到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中的通知。
答案 0 :(得分:2)
我发现了这个问题。
我正在实例化对象,负责我的AppDelegate中的所有扫描,连接,阅读等。 一旦我将它移动到ViewController,它就开始在后台运行得很好。不知道为什么。
答案 1 :(得分:0)
您需要在项目/功能中添加蓝牙所需背景模式的功能 由于您可以在前景中使用蓝牙,我相信您已添加了必要的权利