【Bluedroid】蓝牙启动之 bta_dm_enable 流程梳理 源码解析
蓝牙设备管理器初始化与安全连接机制深度解析
本文深入分析Android蓝牙协议栈中设备管理器(BTA DM)和安全模块的初始化流程,揭示蓝牙连接建立和安全认证的核心机制。重点剖析回调函数注册、IO能力获取、设备状态恢复等关键环节,为蓝牙协议栈的优化和问题排查提供理论支撑。
一、概述
蓝牙设备的配对状态恢复是保障用户无缝连接体验的核心功能。当系统启动或蓝牙模块初始化时,需从存储中加载已配对设备的安全信息(如链路密钥、设备类、IO 能力),并同步到协议栈的安全数据库,避免用户重新配对。
蓝牙设备管理器(BTA DM)是Android蓝牙协议栈的核心组件,负责管理设备连接和安全认证:
1. 初始化阶段:
-
注册ACL和安全回调函数建立事件通知通道
-
获取并缓存本地设备的IO能力(决定配对方式)
-
使用默认值保障鲁棒性(设备名称、扫描模式等)
2. 设备恢复机制:
-
从持久化存储中读取已配对设备信息