Galaxy Watch 5升级Wear OS 4后Bluetooth-LE连接严重故障求助
Wear OS 4.0 (One UI 5.0) Galaxy Watch 5 BLE Gatt连接失败:空地址与CONNECTION_ALREADY_EXISTS错误
问题概述
我是Wear OS蓝牙低功耗(BLE)应用开发者,Wear OS 4.0(One UI 5.0)更新后,大量Galaxy Watch 5用户反馈应用无法正常工作。自行验证后发现,哪怕是仅包含简单Gatt LE连接逻辑的极简测试应用,也会连接失败。两款应用在Galaxy Watch 4、Google Pixel Watch及其他Wear OS设备上运行正常,但搭载Wear OS 4.0 + One UI 5.0的Galaxy Watch 5必现该故障。
核心现象
应用通过以下代码发起BLE Gatt连接:
bluetoothDevice.connectGatt(context, false, gattCallback, BluetoothDevice.TRANSPORT_LE)
但传入的BluetoothGattCallback从未被触发,连接无任何回调反馈。
蓝牙栈日志分析
从com.android.bluetooth的bt_stack日志中,可见连接流程初期正常:
W Creating le direct connection to:xx:xx:xx:xx:03:1f[public] W AcceptLeConnectionFrom xx:xx:xx:xx:03:1f W Allow Le connection from remote:xx:xx:xx:xx:03:1f[PUBLIC_DEVICE_ADDRESS] W create_le_connection :: address : a8:22:9f, add_to_connect_list : 1, is_direct : 1 W add_device_to_connect_list a8:22:9f :: Send command after register
但随后出现异常的空设备地址(00:00:00),最终因CONNECTION_ALREADY_EXISTS错误终止:
W No prior connection request for 00:00:00 W Device not in acceptlist and cannot be removed:00:00[PUBLIC_DEVICE_ADDRESS] W le_impl::add() handle=0x42 addr=00:00:00 W create_le_connection :: address : 00:00:00, add_to_connect_list : 0, is_direct : 0 W add_to_connect_list is false. call arm_connectability() W Unknown device being removed from acceptlist:xx:xx:xx:xx:00:00[PUBLIC_DEVICE_ADDRESS] W arm_connectability() E Received UNEXPECTED command status:CONNECTION_ALREADY_EXISTS opcode:0x2043 (LE_EXTENDED_CREATE_CONNECTION) W on_le_disconnect Handle : 0x42, Reason : 62 W le_impl::remove() handle=0x42 addr=00:00:00 W [Current Device list in background_connections_ set] E Unable to find sco connection W Got uncommon disconnection reason:Connection Failed Establishment handle:0x0042 comment:stack::acl::btm_acl::btm_acl_disconnected W Got disconnect for unknown device record handle:0x0042
关键异常点:
- 流程中突然出现空设备地址
00:00:00 - 触发
CONNECTION_ALREADY_EXISTS错误(操作码0x2043) - 断开原因62对应
Connection Failed Establishment,且系统无法找到对应设备的连接记录
已尝试的解决方法
已排查并尝试清除蓝牙缓存、重启设备、重新配对、调整连接参数等常规修复手段,均无法解决问题。
结论与求助
此问题明确是Wear OS 4.0(One UI 5.0)与Galaxy Watch 5适配的底层Bug,空地址的出现可能暗示蓝牙栈存在内存损坏问题,甚至存在潜在安全风险。恳请提供针对性的技术支持或解决方案思路。
内容的提问来源于stack exchange,提问作者MattP
相关产品推荐
相关产品推荐

