iOS BLE后台重新连接

时间:2018-01-18 17:30:24

标签: ios swift bluetooth-lowenergy core-bluetooth

我遇到与设备重新连接的问题。当我离开BLE设备区域时,离开iPhone大约3分钟并等待背景然后返回,它将不会重新连接。我试图在后台扫描外围设备,但即使我指定了UUID也无法正常工作。那有什么解决方案吗?

func centralManager(central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: NSError?) {
        dispatch_async(dispatch_get_main_queue(), {
            self.centralManager?.connectPeripheral(self.choosenPeripheral!, options: nil)  
        })    
   }

1 个答案:

答案 0 :(得分:3)

当外围设备断开连接时,您只需要在connectPeripheral委托方法中再次呼叫didDisconnectPeripheral;这将创建一个“待定”连接,一旦外围设备返回范围,iOS将连接到它并调用您的didConnectPeripheral委托方法。

您无需Dispatch连接操作。只需使用:

func centralManager(central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: NSError?) {
        central.connectPeripheral(peripheral, options: nil)    
}