藍牙 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
?