iOS 检测蓝牙 connection/disconnection
iOS Detect Bluetooth connection/disconnection
当蓝牙设备与 iOS 连接或断开连接时是否可以收到通知,即使我的应用程序处于后台?
在 Android 上,我使用 ACTION_ACL_CONNECTED
和 ACTION_ACL_DISCONNECTED
事件。但是我找不到 iOS.
的等价物
我找到了可以用来监控蓝牙事件的 CBCentralManager
,但是当蓝牙设备是 connected/disconnected 时我的函数不会被调用,只有当我 enable/disable 蓝牙.是我这边的错误还是正常的?
我还找到了有关音频路由更改的文档,这也是检测蓝牙的一个想法 connections/disconnections。只需检查新路由的种类并检测当时连接的蓝牙设备。
在文档中,我还发现了 NSNotification
类型,例如 IOBluetoothHostControllerXXX
,但没有对它们进行任何解释。有人用过吗?
有更好的东西还是我遗漏了什么?
一般情况下您收不到蓝牙外设连接和断开的通知。您可以获得 您的应用 连接到的 BLE 外围设备的连接和断开事件。
例如,如果您的应用启动与心率传感器的连接,那么当连接成功时,您将收到对 CBCentralManagerDelegate
连接函数的调用。如果该设备随后关闭或超出范围,那么您将调用断开连接委托方法。
如果其他应用启动并建立连接,您将不会收到回调。
如您所述,您可以监控音频路由变化以推断蓝牙音频设备已 connected/disconnected,但插入耳机时也会触发。
当蓝牙设备与 iOS 连接或断开连接时是否可以收到通知,即使我的应用程序处于后台?
在 Android 上,我使用 ACTION_ACL_CONNECTED
和 ACTION_ACL_DISCONNECTED
事件。但是我找不到 iOS.
我找到了可以用来监控蓝牙事件的 CBCentralManager
,但是当蓝牙设备是 connected/disconnected 时我的函数不会被调用,只有当我 enable/disable 蓝牙.是我这边的错误还是正常的?
我还找到了有关音频路由更改的文档,这也是检测蓝牙的一个想法 connections/disconnections。只需检查新路由的种类并检测当时连接的蓝牙设备。
在文档中,我还发现了 NSNotification
类型,例如 IOBluetoothHostControllerXXX
,但没有对它们进行任何解释。有人用过吗?
有更好的东西还是我遗漏了什么?
一般情况下您收不到蓝牙外设连接和断开的通知。您可以获得 您的应用 连接到的 BLE 外围设备的连接和断开事件。
例如,如果您的应用启动与心率传感器的连接,那么当连接成功时,您将收到对 CBCentralManagerDelegate
连接函数的调用。如果该设备随后关闭或超出范围,那么您将调用断开连接委托方法。
如果其他应用启动并建立连接,您将不会收到回调。
如您所述,您可以监控音频路由变化以推断蓝牙音频设备已 connected/disconnected,但插入耳机时也会触发。