在iOS应用程序中自动连接到BLE设备

我正在写一个iOS应用程序,它将使用蓝牙低功耗(BLE)与设备进行通信。

当我的连接设备超出范围,我的应用程序正在获取断开事件。

但是当设备回到范围时,我没有收到任何连接事件。

请build议任何方法来检测设备何时回到范围。

当您收到设备无法访问的事件时,您可以启动一个连续检查设备是否仍然无法访问的方法。

例如:while(isConnected == false)…你说如果设备断开,你会得到一个通知,所以你可以使用这个事件来启动这样一个方法

当您收到断开连接事件时,只需重新启动扫描function: scanForPeripheralsWithServices或者您可以通过[_manager scanForPeripheralsWithServices:self.targetDeviceServiceIDs options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}]设置扫描模式以接受重复密钥。 这意味着相同的设备将被发现许多时间,直到您停止扫描。

如果连接超时,只需在断开方法中重新连接即可。 没有必要开始扫描。 它会自动尝试重新连接,直到它在范围内。

当您的设备断开连接或超出蓝牙范围时,您不需要扫描外围设备,因为它已经扫描了BLE设备。

调用函数[centralObj connectPeripheral:peripheral options:nil]; 当BLE设备断开连接时,进入didDisconnectPeripheral委托方法。