如何在Core Bluetooth中断开连接后重新连接设备

问题描述:

在Core Bluetooth中,连接到设备后,我关闭设备并断开设备连接。但是当我再次打开设备时,再次调用didDiscoverPeripheral。我怎样才能重新连接到设备?如何在Core Bluetooth中断开连接后重新连接设备

当您断开与cancelPeripheralConnection设备的连接时,将调用didDisconnectPeripheral委托方法。但是从iOS 6.0开始,设备保持连接大约40-50秒(或更多),因此在该时间段内将不会调用didDiscoverPeripheral。如果您想再次“发现”,只需拨打retrieveConnectedPeripherals方法即可获得参考文献didRetrieveConnectedPeripherals

但是,最好的解决方案是保存设备的UUID并使用它来重新连接retrievePeripherals方法。这将调用didRetrievePeripherals,您可以重新连接connectPeripheral。这是重新连接到设备的最快方式,在这种情况下不需要扫描。

+0

我正在寻找相同的EAAccessory框架。可能吗?如果有的话,谁能指导我“如何”?提前致谢...:) –

当您使用scanForPeripheralsWithServices进行扫描时,它通常只会通知您一次特定设备地址。您可以通过指定选项CBCentralManagerScanOptionAllowDuplicatesKey将其更改为报告重复项。或者您可以让您的应用程序检测到其他设备使用超时断开连接,然后重新启动扫描。

在CoreBluetooth中所有的管理都是由应用层完成的。 在你的情况下,我会做的是听取断开事件,而不是在同一事件,重新连接外设。 连接方法是一种便宜的连接方法,可确保您在重新连接至设备时连接到设备。

请注意,如果您明确断开设备,则收到相同的断开连接事件,但您不必调用reconnect方法。