首页 > 解决方案 > 当应用程序处于后台时,核心蓝牙框架不会向 iOS 应用程序发送数据

问题描述

我已经构建了一个 iOS 应用程序,它使用蓝牙低功耗 (BLE) 与设备交换数据,这是一个核心蓝牙框架。

当应用程序处于后台时,即使设备已向 iPhone 发送数据,BLE 框架也不会将此数据发送到应用程序。

当应用程序进入前台时,它会接收应用程序在后台时发送的所有数据。这意味着 iPhone 的蓝牙层接收到数据,但它只是存储数据并在应用程序进入前台时将其传递给应用程序。

这并不总是问题。这是随机发生的。

// application went to background 
2019/04/13 11:54:38:174  BLEManager# applicationDidEnterBackground
2019/04/13 11:54:38:176  BLEBackgroundTaskManager# applicationDidEnterBackground


// application receives data when it comes to foreground although this data was sent from device at 11:54:40:256
2019/04/13 12:39:36:149  CentralManager# Value received is <02>

预期的结果是didUpdateValueForCharacteristic在接收到数据时会调用它,但当应用程序在后台时,不会调用此 API。当应用程序进入前台时,将调用此 API。

标签: iosbackgroundbluetooth-lowenergycore-bluetoothdata-transfer

解决方案


这通常意味着您没有在后台模式中添加“使用蓝牙 LE 附件”功能。

在此处输入图像描述


推荐阅读