本文介绍: 参考:hl=zh–cnhl=zh–cnhl=zh–cn对于BlueDroid而言,协议栈是在用户层实现的,内核只暴露出HCI(USB/UART)的接口。因此,我们可以从HCI出发,自底向上进行分析,也可以参考上面的框架图,从用户应用程序开始,自顶向下进行分析。
参考:
https://evilpan.com/2021/07/11/android–bt/
https://source.android.com/docs/core/connect/bluetooth?hl=zh–cn
https://developer.android.com/guide/topics/connectivity/bluetooth?hl=zh–cn
https://developer.android.com/guide/components/intents-filters?hl=zh–cn
对于BlueDroid而言,协议栈是在用户层实现的,内核只暴露出HCI(USB/UART)的接口。因此,我们可以从HCI出发,自底向上进行分析,也可以参考上面的框架图,从用户应用程序开始,自顶向下进行分析
AIDL Server
android12/system/bt/stack/btm/btm_inq.cc
btm_ble_set_discoverability
第一个API是BLE相关,内部实际上最终也调用了btsnd_hcic_xxx
的类似接口。IAC
意为Inquiry Access Code,蓝牙baseband定义了几个固定IAC,分别是LIAC和GIAC(见baseband)。LAP是蓝牙地址的一部分,如下图所示:
btsnd_hcic_write_cur_iac_lap
HCI 子系统
接收数据
发送数据
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。