在集成 "iBeacon + BLE Peripheral Scanning iOS Background mode" 功能方面需要帮助

Need help in integrating "iBeacon + BLE Peripheral Scanning iOS Background mode" feature

有一个要求,当应用程序被用户杀死或OS(可能强制或可能不强制)时,我需要允许iOS应用程序与BLE硬件通信。

此硬件同时用作 iBeacon 和 BLE 外设!

我们所做的是:

所以我的 BLECentralManager 对象将开始扫描

self?.bleCentralManager.scanForPeripherals(withServices: "0011-12345-12345-123452", options: [CBCentralManagerScanOptionAllowDuplicatesKey: false])

一旦检测到外围设备,其余的 BLE 操作将在此外围设备上执行(即建立连接、将数据发送到特定特征,最后断开连接)。这在前台模式下效果很好。

现在,我需要在后台实现相同的机制(即 App 不是 运行 状态)。我怎样才能实现它?

注意:

iOS 将在检测到信标时启动您的应用程序,您将收到 didEnter(region:) 回调。此时,您可以立即启动 locationManager.startRangingBeacons(...) 的信标测距,您将收到 didRangeBeacons(...) 几秒钟的回调 - 足够长的时间来读取 major/minor 标识符并完成您需要的工作。