Android 蓝牙启动流程(以及设置蓝牙为作为sink模式 & 接收端模式)
本文以Android 7.1为基础 最近在做蓝牙开发,研究了一下蓝牙的启动流程,总结一下 Google在Android源码中推出了它和博通公司一起开发的BlueDroid以替代BlueZ。BlueZ的创始者,高通公司也将在基于其芯片的Android参考设计中去除BlueZ,支持BlueDroid。相比BlueZ,BlueDroid最值得称道的地方就是其框架结构变得更为简洁和清晰。对我们工程师来说这也是个不错的福利,清晰、简洁的架构使我们在debug过程中思路更清晰; 蓝牙的总体流程图 从流程图我们可以看出来 蓝牙应用通过binder和系统蓝牙Service进行通讯 ,然后通过Jin与蓝牙HAL层进行通讯. 按层级划分 Bluetooth Service(Java层)代码路径 frameworks/base/core/java/Android/Bluetooth: Bluetooth 应用层代码路径 packages/apps/Bluetooth Bluetooth协议层代码 system/bt/ 涉及的总共路径: frameworks/base/core/java/android/bluetooth/BluetoothAdapter.java frameworks/base/core/java/android/bluetooth/BluetoothManagerService