iOS BLE CentralManager didFailToConnect到外围设备没有被调用

时间:2018-01-19 08:18:46

标签: ios swift bluetooth-lowenergy core-bluetooth

在中央发现外围设备的情况下,但在用户按下按钮进行连接之前,外围设备超出范围,因此无法完成连接。 CoreBluetooth调用了什么方法? 我以为会调用centralManager didFailToConnect,但在我的代码中它没有被调用,也许是因为连接从未启动过? 在这种情况下,我应该使用哪种方法。 提前感谢您的帮助。

[PhaseID]

2 个答案:

答案 0 :(得分:1)

在这种情况下不会调用任何内容,因为外围设备未连接,连接外围设备也没有错误。

核心蓝牙将为该外围设备提供挂起的连接,一旦它返回到范围内,连接将完成并将调用didConnectPeripheral

答案 1 :(得分:1)

如上一个答案中所述,如果任何设备未启动连接过程,则不会调用任何委托方法。didFailToConnect方法仅在设备启动连接过程时调用,但由于任何原因导致设备无法连接。

如果要检查是否有任何设备用于连接,则需要在特定时间段内创建一个计时器,如果在此期间未扫描任何设备,则可以显示一条消息,显示"没有可用的设备"并再次检查设备。