Android 提供了一个默认蓝牙堆栈,该堆栈具有以下两个层级:实现核心蓝牙功能的蓝牙嵌入式系统 (BTE) 以及与 Android 框架应用通信的蓝牙应用层 (BTA)。
蓝牙系统服务通过 JNI 与蓝牙堆栈进行通信,并通过 Binder IPC 与应用通信。系统服务向开发者提供了对各种蓝牙配置文件的访问权限。下图显示了蓝牙堆栈的常规结构:
处于应用框架级别的是应用代码,它利用 android.bluetooth API 与蓝牙硬件进行交互。此代码在内部通过 Binder IPC 机制调用蓝牙进程。
要添加自定义扩展程序和用于跟踪的 HCI 层,您可以创建一个 libbt-vendor 模块并指定这些组件。
实现 HAL
特定于配置文件的文件位于同一目录中。有关详情,请参阅 HAL 文件参考。
请记住,您的蓝牙实现不限于 HAL 中提供的功能和配置文件。您可以在 system/bt 目录中找到蓝牙堆栈中的默认实现,该堆栈实现了默认的 HAL 以及其他功能和自定义设置。
如果您使用的是默认蓝牙堆栈,但想要进行一些自定义设置,则可以执行以下操作:
本页面上的内容和代码示例受内容许可部分所述许可的限制。