我正在尝试断开与 BLE 设备的连接。我正在执行 cancelPeripheralConnection() 并且它从不调用 didDisconnectPeripheral() 。
我将通知值设置为一个特征,因此在断开连接时我将其设置为 false。
{
BLEOperations.sharedInstance.connectedDevice?.setNotifyValue(false, for: BLEOperations.sharedInstance.peripheralCharacteristics[0])
BLEOperations.sharedInstance.manager.cancelPeripheralConnection(BLEOperations.sharedInstance.connectedDevice!)
}
当用户尝试连接到新设备时,我正在尝试断开 connectedPeripheral。当前设备未断开连接,但新设备与旧设备连接。
{
BLEOperations.sharedInstance.manager.connect(self.peripheralArray[indexPath.row] as! CBPeripheral , options: nil)
}
我在这里做错了什么?当设备连接丢失时,将调用该方法。
Best Answer-推荐答案 strong>
当 CentralManager 在整个流程中只有一个实例时,它会正常工作。
您可以创建一个 CentralManager 操作类(它是单例)并执行操作,而不是在 viewcontroller 中使用 centralmanagerdelegates。
我做到了,效果很好。
关于ios - didDisconnectPeripheral 未调用 iOS Swift 3,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41889964/
|