Ios 断开核心蓝牙连接后,如何重新连接到设备
在Core Bluetooth中,连接到设备后,我关闭设备,设备断开连接。但是当我再次打开设备时,没有再次调用Ios 断开核心蓝牙连接后,如何重新连接到设备,ios,bluetooth,core-bluetooth,Ios,Bluetooth,Core Bluetooth,在Core Bluetooth中,连接到设备后,我关闭设备,设备断开连接。但是当我再次打开设备时,没有再次调用didiscoverperipheral。如何重新连接到设备?当您使用scanForPeripheralsWithServices进行扫描时,它通常只会针对特定的设备地址通知您一次。通过指定选项CBCentralManagerScanOptionAllowDuplicatesKey,可以将此更改为报告重复项。或者,你可以让你的应用程序检测到另一个设备使用超时断开连接,然后重新启动扫描。当
didiscoverperipheral
。如何重新连接到设备?当您使用scanForPeripheralsWithServices
进行扫描时,它通常只会针对特定的设备地址通知您一次。通过指定选项CBCentralManagerScanOptionAllowDuplicatesKey
,可以将此更改为报告重复项。或者,你可以让你的应用程序检测到另一个设备使用超时断开连接,然后重新启动扫描。当你使用取消外围设备连接
断开设备连接时,将调用DidDisconnect外围设备
委托方法。但是,从iOS 6.0开始,设备保持连接的时间约为40-50秒(或更长),因此在该时间段内不会调用DidDiscoveryPeripheral
。如果您想再次“发现”它,只需调用retrieveConnectedPeripherals
方法,您将在didreeveconnectedperipherals
中获得引用
但是,最好的解决方案是保存设备的UUID,并使用该UUID重新连接
retrievePeripherals
方法。这将调用didRetrievePeripherals
,您可以重新连接connectperipherals
。这是重新连接到设备的最快方式,在这种情况下无需扫描。在CoreBlutooth中,所有管理都由应用层完成。
在您的情况下,我要做的是监听断开连接事件,而不是在同一事件中,重新连接外围设备。
连接方法是一种便宜的方法,可以确保在设备返回范围时重新连接到设备
请注意,如果您显式断开设备,您将收到相同的断开事件,但您不必调用重新连接方法。@Andras为我提供了正确的路径,但自iOS7以来,他的答案不再完整 重新连接到以前的设备的最佳方法是使用
检索外围设备(带标识符:)
方法
此方法不调用委托,而是直接返回与传入参数的UUID
列表相对应的外围设备的列表
if let peripheral = self.centralManager.retrievePeripherals(withIdentifiers: [uuid]).first {
self.peripheral = peripheral // <-- super important
self.centralManager.connect(peripheral, options: nil)
}
如果let peripheral=self.centralManager.retrievePeripherals(带标识符:[uuid])。首先{
self.peripheral=peripheral//我正在寻找与EAF附件框架相同的方法。是否可能?如果可能,有人可以告诉我“如何操作”?提前感谢……:)如何断开设备与外围设备的连接?