繁体   English   中英

重新启动后连接到蓝牙外围设备

[英]Connect to bluetooth peripheral after reboot

重新启动手机后,我尝试重新连接外围设备。

我正在使用位置更新回调在后台启动BLE连接过程。 ble堆栈已在后台正确初始化(发送了CBCentralManagerStatePoweredOn事件)

外围设备上的“连接”已启动,但未建立连接...

重启后是否有重新连接设备的想法?

当您说外围设备上的“连接”已启动时,是否表示您使用connectPeripheral手动连接:? 过去,我在iOS上的连接问题上苦苦挣扎,并注意到CoreBluetooth在内部必须避免许多竞争条件。 通常,我建议始终对CoreBluetooth回调之后发生的所有连接请求至少进行20ms的调度延迟。 这样可以避免大多数比赛情况。 您可以自己进行测试,例如,通过设置挂起的连接,然后在外围设备连接之前稍后调用cancelPeripheralConnection:。 当您收到didFailToConnect回调时,请立即再次调用connectPeripheral:。 现在,连接应处于“ limbo”模式,其中连接状态为“正在连接”,但实际上外围设备将永远不会连接。 此时再次调用connect不会执行任何操作。

我不知道这是否是造成您问题的原因,但可能是原因。 同样,在CentralManager状态恢复后,我建议在开始与框架进行交互之前,让框架“停顿”一秒钟左右。

另一重要的事情是,直到获得applicationDidFinishLaunchingWithOptions:AppDelegate的回调之后,您才可以重新启动管理器。 更早地执行此操作可能会导致奇怪的行为。

请进行更多调查,如果仍有问题,请告诉我们。 我可能还有其他提示。 /安东

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM