如何在Core Bluetooth中断开连接后重新连接设备
在Core Bluetooth中,连接到设备后,我关闭设备并断开设备连接。但是当我再次打开设备时,再次调用didDiscoverPeripheral
。我怎样才能重新连接到设备?如何在Core Bluetooth中断开连接后重新连接设备
当您断开与cancelPeripheralConnection
设备的连接时,将调用didDisconnectPeripheral
委托方法。但是从iOS 6.0开始,设备保持连接大约40-50秒(或更多),因此在该时间段内将不会调用didDiscoverPeripheral
。如果您想再次“发现”,只需拨打retrieveConnectedPeripherals
方法即可获得参考文献didRetrieveConnectedPeripherals
。
但是,最好的解决方案是保存设备的UUID并使用它来重新连接retrievePeripherals
方法。这将调用didRetrievePeripherals
,您可以重新连接connectPeripheral
。这是重新连接到设备的最快方式,在这种情况下不需要扫描。
当您使用scanForPeripheralsWithServices
进行扫描时,它通常只会通知您一次特定设备地址。您可以通过指定选项CBCentralManagerScanOptionAllowDuplicatesKey
将其更改为报告重复项。或者您可以让您的应用程序检测到其他设备使用超时断开连接,然后重新启动扫描。
在CoreBluetooth中所有的管理都是由应用层完成的。 在你的情况下,我会做的是听取断开事件,而不是在同一事件,重新连接外设。 连接方法是一种便宜的连接方法,可确保您在重新连接至设备时连接到设备。
请注意,如果您明确断开设备,则收到相同的断开连接事件,但您不必调用reconnect方法。
我正在寻找相同的EAAccessory框架。可能吗?如果有的话,谁能指导我“如何”?提前致谢...:) –