【Bluedroid】蓝牙 GATT 客户端注册机制与流程详解(BTA_GATTC_AppRegister)
本文深入解析蓝牙 GATT 客户端的注册流程,涵盖从应用层回调注册到 GATT 协议栈资源分配的完整链路。通过分析 BTA 与 GATT 栈的分层交互,揭示模块初始化、接口分配、状态同步的核心逻辑,并探讨线程安全、资源管理等关键设计考量。
一、概述
1.1 注册流程核心步骤
-
应用层注册触发:
BTA_GATTC_AppRegister
作为入口,检查 BTA 模块注册状态并调度主线程执行注册 -
模块初始化:若 GATTC 模块未启用,通过
bta_gattc_enable
初始化控制块并标记为启用状态 -
资源分配与底层注册:
bta_gattc_register
遍历可用槽位,调用GATT_Register
向协议栈注册应用 -
接口启动与状态同步:通过
GATT_StartIf
启动接口,并将已连接设备状态回调通知应用层
1.2 关键组件交互
-
BTA 系统管理:通过