第三方扩展

BluetoothKit源码解读

2017-10-07  本文已影响34人  LeonXtp

BluetoothKit


本库地址

本库作者关于蓝牙系列文章

项目主要类图结构

查看大图


代理模式

IBluetoothClient接口
BluetoothClient代理实现类
BluetoothClientImpl真正的实现类

线程切换

进程管理

为什么没有开启新进程,却要使用AIDL?

单例管理

蓝牙交互逻辑

所有的方法调用,都统一通过safeCallBluetoothApi()方法跨进程调用,使用code区分方法,使用Bundle传递参数以及回调。
在执行完毕后,通过跨进程调起回调。

流程/角色解析


一次搜索设备的任务分配和执行流程

一次写入设备的任务分配和执行流程

characteristic.setValue(value != null ? value : ByteUtils.EMPTY_BYTES);

调用原生的接口,写入了一个特征值

BluetoothGattResponse:继承自原生的蓝牙写入回调,在BluetoothLEGatt连接的时候传入,然后写入成功后会收到回调。

上一篇下一篇

猜你喜欢

热点阅读