有许多相关的问题,但(显然)没有答案。SO...
我的iOS应用程序在后台运行时确实会从我的BLE设备获取更新。如果我与BLE设备失去联系,那么在centralManager:didDisconnectPeripheral:
中,我调用-[CBCentralManager cancelPeripheralConnection:]
-- 否则,我将永远无法重新连接到丢失的外围设备。然后我调用[(re)call -[CBCentralManager scanForPeripheralsWithServices:options:]
。
日志显示didDisconnectPeripheral
调用及其包含的调用都在后台发生。但是,只有当应用程序从后台唤醒时,重新连接才会发生。
因此,我能够在后台与已连接的BLE设备通信(耶!),但无法重新连接。这对我的应用程序非常重要,也对其他应用程序(人)很重要。欢迎提供建议。