A2DPsetActiveDevice到 Audio HAL 交互详解文档目标本文档单独梳理以下问题:从android/app/src/com/android/bluetooth/a2dp/A2dpService.java的setActiveDevice()开始,A2DP Source 如何一路与 Audio HAL 交互。Bluetooth 和 Audio HAL 的 AIDL 连接是如何建立的。通道是如何建立的,PCM 数据如何通过 FMQ 传输。状态是如何同步的,控制回调是如何往返的。单耳机和双耳机场景有何异同。耳机 1 / 耳机 2 是如何区分的,流是如何走的。本文档聚焦 classic A2DP Source,不展开 LE Audio。先给结论从A2dpService.setActiveDevice(device, true)往下看,这条链路本质上分成三层:控制面:A2dpService- JNI -btif_av-btif_a2dp_source- Audio HAL