一、Android 蓝牙框架
蓝牙应用通过 Binder 与蓝牙进程进行通信。蓝牙进程使用 JNI 与蓝牙堆栈通信,并向开发者提供对各种蓝牙配置文件的访问权限。下图显示了蓝牙堆栈的常规结构:
上篇博客我总结了Android打开蓝牙分为4个阶段,第一阶段就是打开蓝牙的方法从APP调到systemServer再到Bluetooth协议栈,最后走到了hardware蓝牙硬件设备。如下图绿色虚线的流程:
经过了硬件的一些列操作,正真打开了蓝牙设备,下面继续分析。
第二阶段:(对应图中蓝色虚线流程)
在蓝牙打开成功之后,JNI层会通过JniCallbacks的stateChangeCa