iOS 检测蓝牙 connection/disconnection

iOS Detect Bluetooth connection/disconnection

当蓝牙设备与 iOS 连接或断开连接时是否可以收到通知,即使我的应用程序处于后台? 在 Android 上,我使用 ACTION_ACL_CONNECTEDACTION_ACL_DISCONNECTED 事件。但是我找不到 iOS.

的等价物

我找到了可以用来监控蓝牙事件的 CBCentralManager,但是当蓝牙设备是 connected/disconnected 时我的函数不会被调用,只有当我 enable/disable 蓝牙.是我这边的错误还是正常的?

我还找到了有关音频路由更改的文档,这也是检测蓝牙的一个想法 connections/disconnections。只需检查新路由的种类并检测当时连接的蓝牙设备。

在文档中,我还发现了 NSNotification 类型,例如 IOBluetoothHostControllerXXX,但没有对它们进行任何解释。有人用过吗?

有更好的东西还是我遗漏了什么?

一般情况下您收不到蓝牙外设连接和断开的通知。您可以获得 您的应用 连接到的 BLE 外围设备的连接和断开事件。

例如,如果您的应用启动与心率传感器的连接,那么当连接成功时,您将收到对 CBCentralManagerDelegate 连接函数的调用。如果该设备随后关闭或超出范围,那么您将调用断开连接委托方法。

如果其他应用启动并建立连接,您将不会收到回调。

如您所述,您可以监控音频路由变化以推断蓝牙音频设备已 connected/disconnected,但插入耳机时也会触发。