蓝牙 GAP(通用访问配置文件)模块是蓝牙协议栈的核心组件,负责设备发现、连接管理及基础属性暴露等关键功能。本文围绕 Android蓝牙协议栈 GAP 模块的初始化流程与连接管理实现展开,结合代码解析其核心函数(GAP_Init
、gap_conn_init
、gap_attr_db_init
)的功能逻辑,以及关键数据结构(tGAP_CONN
、tGAP_CCB
、tGAP_ATTR
等)的设计意图。通过分析 GAP 模块与 L2CAP 层的协议交互、连接状态机管理,以及 GATT 属性数据库的初始化过程,揭示 GAP 模块在蓝牙设备发现、配对及连接中的基础支撑作用。
一、概述
蓝牙 GAP 模块作为协议栈的 “入口”,其核心目标是为上层应用提供统一的设备管理接口,并确保底层协议(如 L2CAP、GATT)的高效协作。本文聚焦以下核心内容:
1.1 GAP 模块初始化流程:GAP_Init
GAP_Init
是 GAP 模块的基础初始化入口函数,设计上确保 “每次栈调用仅执行一次”。其通过调用两个子函数完成初始化:
-
gap_conn_init
ÿ