CoreBluetooth `retrieveConnectedPeripheralsWithServices` returns 断开的外围设备

CoreBluetooth `retrieveConnectedPeripheralsWithServices` returns disconnected peripherals

我想知道 CBManagerretrieveConnectedPeripheralsWithServices 的语义。每次我使用它时,我都会得到 CBPeripheral 个状态为 CBPeripheralStateDisconnected 的实例。

重新连接是没有问题的,但是这个方法不是应该return连接外设吗?

不幸的是,这是有意为之的行为。我不得不承认这有点违反直觉,但外围设备状态始终与您的应用程序相关。这意味着如果您使用其他应用程序或通过蓝牙系统设置 connected/paired/bonded 外围设备,它仍会在您的应用程序中显示为断开连接。如果您在应用程序中连接了一些外围设备,它们将显示为已连接。