本文详细分析Android蓝牙协议栈在设备故障时的处理流程。当蓝牙设备发生硬件故障或系统异常时,协议栈通过
btm_acl_device_down
触发多层次的资源清理和状态重置,包括ACL连接终止、L2CAP通道释放、SCO连接清理、BLE拓扑更新、设备数据库重置等关键操作,确保系统安全恢复。
一、概述
1.1 蓝牙核心控制块与故障处理框架
蓝牙协议栈通过全局控制块tBTM_CB
实现跨模块状态管理,其整合了经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)的控制逻辑,包含设备信息(devcb
)、连接数据库(acl_cb_
)、查询状态(btm_inq_vars
)等关键模块。当本地设备被判定为故障(如硬件崩溃)时,btm_acl_device_down
函数作为入口,触发全链路的状态清理流程。
1.2 故障处理核心流程
(1) ACL 连接清理机制
bt