在Bluedroid蓝牙协议栈中,A2DP(Advanced Audio Distribution Profile) Sink负责接收来自A2DP Source(如手机、音乐播放器等)的音频流,并将其播放到本地设备(如车载音响、蓝牙耳机等)上。A2DP Sink连接流程涉及多个步骤,包括服务启动、设备发现、连接建立、音频配置和数据传输等。
一、A2DP Sink连接流程
1.1. 初始发现与连接发起阶段
-
设备发现:在A2DP Sink连接之前,蓝牙设备需要处于可被发现的状态。用户通过蓝牙设置界面搜索附近的蓝牙设备,系统发送扫描请求,并更新设备列表。
-
发起
A2DP Sink
连接请求:基于发现的音频源设备信息,上层应用会通过合适的接口向Bluedroid
中的A2DP
相关模块发起连接请求,这一过程涉及到构建连接请求数据结构、设置相关连接参数等操作,告知A2DP
模块要去连接指定的音频源设备。
1.2. 协议交互与配置协商阶段
- 建立
L2CAP
(逻辑链路控制和适配协议)通道