Closed timzaak closed 1 year ago
BLE 蓝牙是当前智能设备不可或缺的模块。由于公司需求需要针对小程序蓝牙API,抽象出一个通用的工具类。故编写此文章。
蓝牙分为经典蓝牙和BLE, 经典蓝牙的编程范式类似socket编程,BLE的编程范式类似发布订阅和Map读写。BLE 设备的唯一标识是其MAC地址,但有些蓝牙固件可以重置它。
ble.drawio
小程序 BLE API 有些奇葩, 需要格外注意小程序的官方文档。另外 BLE 在华为系的手机上表现较为特殊,需要多加测试。
可参考:
这是一个快速查看手机小程序各项参数的小程序,可以用来定位问题
除了以上, 还有很多边界 case,例如关闭蓝牙,再打开蓝牙, 设备仍旧处于链接状态中。这些都是测试人员一点点测出来才行。
另外,在抽象状态时,扫描 和 链接是相互独立的,不应抽象到一个状态机中去表述。
BLE 蓝牙是当前智能设备不可或缺的模块。由于公司需求需要针对小程序蓝牙API,抽象出一个通用的工具类。故编写此文章。
前置条件
BLE 基本介绍
蓝牙分为经典蓝牙和BLE, 经典蓝牙的编程范式类似socket编程,BLE的编程范式类似发布订阅和Map读写。BLE 设备的唯一标识是其MAC地址,但有些蓝牙固件可以重置它。
BLE 的常规使用流程
ble.drawio
小程序 BLE API
小程序 BLE API 有些奇葩, 需要格外注意小程序的官方文档。另外 BLE 在华为系的手机上表现较为特殊,需要多加测试。
可参考: