5

当我在连接到外围设备时切换蓝牙时,我会断开连接并删除回调CoreBluetooth中对我的外围设备的所有引用。centralManagerDidUpdateState

进行另一次扫描将找到并重新连接到设备并再次发出 a discoverServices,但这次回调didDiscoverServices永远不会发生。通过删除所有设置(常规 -> 重置 -> 重置所有设置)或重新启动它再次工作。正常断开/重新连接也可以。如何解决此问题或以编程方式删除 iOS 存储的所有缓存和 UUID?

4

2 回答 2

1

当您收到 centralManager 状态已更改为 的回调时CBCentralManagerStatePoweredOff,您需要遍历所有外围设备并调用cancelConnection:它们。然后你就可以走了。

[_yourCentralManager cancelPeripheralConnection:yourPeripheral];
于 2013-08-06T22:50:55.607 回答
0

If the central state is CBManagerStatePoweredOn, and call the cancelPeripheralConnection API like this:

[self.centralManager cancelPeripheralConnection:self.peripheral];

the callback method centralManager:didDisconnectPeripheral:error: will be called. But if the state is not CBManagerStatePoweredOn, such as CBManagerStatePoweredOff, this callback will not execute.

于 2019-05-16T08:13:02.050 回答