即使我的应用程序处于后台,当蓝牙设备与iOS连接或断开连接时是否可以通知?
在Android上,我使用了ACTION_ACL_CONNECTED
和ACTION_ACL_DISCONNECTED
个事件。但我找不到iOS的等价物。
我发现CBCentralManager
可以用来监控蓝牙事件,但是当蓝牙设备连接/断开时,我的功能都没有被调用,只有当我启用/禁用蓝牙时。这是我的错误还是正常?
我还找到了关于音频路由更改的文档,这也是检测蓝牙连接/断开连接的想法。只需检查新路由的种类,并检测当时连接的蓝牙设备。
在文档中,我还发现了NSNotification
类似IOBluetoothHostControllerXXX
的类型,但没有解释它们。有人已经使用过它们吗?
有什么更好的东西还是我错过了什么?
答案 0 :(得分:8)
您无法接收有关蓝牙外围设备连接和断开的通知 。您可以为您的应用连接的BLE外围设备获取连接和断开连接事件。
例如,如果您的应用启动与心率传感器的连接,那么当连接成功时,您将调用CBCentralManagerDelegate
连接功能。如果该设备随后关闭或超出范围,则您将调用断开委托方法。
如果某个其他应用启动并建立连接,那么您将无法收到回叫。
正如您所提到的,您可以监控音频路线更改,以推断蓝牙音频设备已连接/断开连接,但插入耳机时也会触发。