Android与Linux Bluez外设BLE断开后陷入连接循环问题求助
BLE连接循环问题排查与根因分析
问题场景
- 开发的BLE系统包含两个核心组件:
- 中央设备(Central):基于
flutter_reactive_ble库开发的Flutter安卓应用 - 外设设备(Peripheral):基于Bluezero包开发的Linux Python程序,通过
subprocess调用bluetoothctl执行断开操作
- 中央设备(Central):基于
异常现象
- 手机端手动发起断开时,连接流程正常结束
- 外设端触发断开(含Python程序自动调用
bluetoothctl、手动在bluetoothctl控制台执行断开操作两种场景)后,连接会陷入反复连接-断开的循环状态 - 外设终端日志、
bluetoothctl输出、btmon抓包日志均能观测到该循环现象
排查验证
- 经调试确认:安卓应用侧未主动调用任何连接触发方法,排除应用代码逻辑导致重连的可能性
根因与解决方案
- 最终定位该问题为Android系统底层BUG,将设备升级至Android新版本后,循环连接问题彻底修复
内容的提问来源于stack exchange,提问作者Jurgen
相关产品推荐
相关产品推荐

