作用:BleDevice 是整个蓝牙架构的**"发动机"** !它是所有蓝牙设备类的**抽象基类。**蓝牙设备抽象父类,封装连接、断开、读取、开启通知等通用逻辑。
管理哪些状态
- device:真实蓝牙设备
- rssi:信号强度
- connectState:连接状态
- _connecting:是否正在连接
- _manual:是否手动断开
- _stateStream:连接状态监听
重要的方法
- connect():建立连接并监听状态
- disconnect():断开连接
- setNotify():开启特征值通知
- read():读取特征值
- discoveryService():交给子类实现
- onConnected():交给子类实现
- onDisconnect():交给子类实现
与设备通信的逻辑线
连接设备
-> 发现服务
-> 找特征值
-> 开启通知
-> 发命令
-> 收数据
-> 解析数据
-> 更新页面
整体作用
1. 保存蓝牙设备对象
2. 保存信号强度 rssi
3. 管理连接状态
4. 防止重复连接
5. 监听蓝牙连接状态变化
6. 连接成功后触发服务发现
7. 断开连接后做清理
8. 提供 read 和 notify 的通用方法
9. 把具体设备差异交给子类实现