强制关闭连接到 Android 应用程序的 BLE 设备会触发状态为 8 的 onConnectionStateChange

Posted

技术标签:

【中文标题】强制关闭连接到 Android 应用程序的 BLE 设备会触发状态为 8 的 onConnectionStateChange【英文标题】:Forcefully turning off BLE device connected to Android app fires onConnectionStateChange with status 8 【发布时间】:2015-11-15 10:43:23 【问题描述】:

我有一个使用 BLE API 连接到 BLE 设备的 android 应用。如果我连接到设备,然后在几秒钟后关闭设备的电源,我会在 logcat 中看到这一行:

11-15 12:33:07.977 27829-27847/com.mycompany.platform.hellodev D/BluetoothGatt: onClientConnectionState() - status=8 clientIf=6 device=55:1C:6C:86:8A:F8

然后使用status=8newStatus=0 调用我们的BluetoothGattCallback 回调onConnectionStateChange

我找不到任何说明 status=8 含义的公共文档。

如果通过newStatus=0,是否意味着BLE设备已断开连接?

【问题讨论】:

【参考方案1】:

我找不到任何说明 status=8 含义的公共文档。

表示由于远程设备没有响应或发生超时,您丢失了连接链接(LINK_LOSS)。

是否可以假设如果传递了 newStatus=0 则意味着 BLE 设备已断开连接?

是,如果 newStatus 为 0,则表示 CONNECTION 状态为空闲,设备现在已断开连接。

【讨论】:

你能确认这是状态 8 的情况吗?令人惊讶的是,这只出现 API 版本 > 19。 @NowaConcordia 绝对,它的连接链路丢失(一般称为链路丢失)。 感谢 Ankit 分享状态 8。 @AAnkit 你有官方来源可以验证你的声明吗?谢谢!

以上是关于强制关闭连接到 Android 应用程序的 BLE 设备会触发状态为 8 的 onConnectionStateChange的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 BLE 将 Android 应用程序连接到 Raspberry Pi 3

Android 8.1 连接到调用 connectGatt 的 BLE 外围设备。回调总是说断开连接。从不连接

Android BLE - 连接到多个设备似乎失败并且两个连接的 GATT 响应相同?

为啥在 Android 中将 autoConnect 设置为 true 时,App 不会重新连接到 BLE 设备?

Android 手机从蓝牙更改为 BLE 后无法连接到树莓派

如果在 Android 中连接到 BLE 设备失败,如何通知用户?