蓝牙低功耗 (BLE) 设备与华为手机的连接问题

Aan*_*hta 5 android bluetooth bluetooth-lowenergy android-bluetooth huawei-mobile-services

我们有一款应用程序使用蓝牙低功耗 (BLE) 技术与活动跟踪器等硬件设备进行通信。

所有支持 BLE 的手机均可进行通信,但当我们尝试将追踪器与华为手机连接时,它根本无法工作。

流程如下:

  • 应用程序搜索活动追踪器
  • 当应用程序找到跟踪器时,它会调用蓝牙 Gatt 服务的 connect 方法。
  • 跟踪器应该成功连接,并且应该在“OnConnectionStateChanged()”方法中给出状态 0 和状态 2(成功)的响应。但问题是,它与跟踪器连接不成功。当应用程序发起连接调用时,它立即给出状态为 133(蓝牙 Gatt 失败)的断开回调。

以下是显示问题的日志:

I/Bluetooth: BtGatt.GattService:onConnected() - clientIf=6, connId=0, address=E6:4F:92:69:B7:95
I/Bluetooth: BluetoothProfileService:isAvailable(), mStartError=false, mCleaningUp=false
BluetoothGatt Check Status and NewState: 133|0
I/Bluetooth: BtGatt.GattService:clientDisconnect() - address=E6:4F:92:69:B7:95, connId=null
Run Code Online (Sandbox Code Playgroud)

我们还使用“nRF Connect”应用程序进行了测试,在该应用程序中,它也提供了状态为 133(蓝牙 Gatt 故障)的断开回调。请查找随附的屏幕截图。

在此输入图像描述

如果有人遇到同样的情况,可以帮助我们吗?

小智 0

华为手机因其 BLE 设备的蓝牙缺陷而臭名昭著。Garmin、FitBit 和 Nokia/Withings 活动追踪器也遇到同样的问题。Garmin 开发人员在华为工程师的帮助下设法解决了这个华为漏洞。 https://support.garmin.com/en-US/?faq=3qBFoCgeH428IUUfc0SpZ7

Fitbit 和 Withings 工程师尚未抽出时间与华为协商解决该问题。看来客户端需要做一些不同的事情(BT 握手期间的一些超时调整?忽略错误消息?)

特别是 P8Lite、P9Lite 和 P10Lite 在 Android 6.x 和 7.x 版本中遇到此问题。可能是华为在这些 Android 版本中搞砸了一些东西。