iOS检测蓝牙连接/断开连接

时间:2018-01-16 15:31:16

标签: ios bluetooth background-process core-bluetooth ios-bluetooth

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

我发现CBCentralManager可以用来监控蓝牙事件,但是当蓝牙设备连接/断开时,我的功能都没有被调用,只有当我启用/禁用蓝牙时。这是我的错误还是正常?

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

在文档中,我还发现了NSNotification类似IOBluetoothHostControllerXXX的类型,但没有解释它们。有人已经使用过它们吗?

有什么更好的东西还是我错过了什么?

1 个答案:

答案 0 :(得分:8)

您无法接收有关蓝牙外围设备连接和断开的通知 。您可以为您的应用连接的BLE外围设备获取连接和断开连接事件。

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

如果某个其他应用启动并建立连接,那么您将无法收到回叫。

正如您所提到的,您可以监控音频路线更改,以推断蓝牙音频设备已连接/断开连接,但插入耳机时也会触发。