【问题标题】:iOS CoreBluetooth can't receive notifications in backgroundiOS CoreBluetooth 无法在后台接收通知
【发布时间】:2017-02-16 20:20:30
【问题描述】:

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

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

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

前台一切正常,但一旦我在后台运行应用程序,它就会停止接收更新。我加了

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

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

【问题讨论】:

    标签: ios swift background core-bluetooth


    【解决方案1】:

    我发现了问题。

    我在我的 AppDelegate 中实例化处理所有扫描、连接、读取等的对象。 一旦我将它移到 ViewController 中,它就开始在后台正常工作。不知道为什么。

    【讨论】:

      【解决方案2】:

      您需要在 Project/capabilities 中添加所需的蓝牙后台模式功能 由于您可以在前台使用蓝牙,我相信您已经添加了必要的权利

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-24
        • 2017-12-28
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-21
        相关资源
        最近更新 更多