步骤
1.初始化蓝牙模块 uni.openBluetoothAdapter
2.搜索设备 uni.startBluetoothDevicesDiscovery 这一步拿到设备Id deviceId
3.连接到设备 uni.createBLEConnection 连接成功后停止扫描 uni.stopBluetoothDevicesDiscovery,断开连接到下次连接需要等待几秒钟,让设备能反应过来,哈哈!
4.获取设备的所有服务uni.getBLEDeviceServices 这里遍历res.services拿到主服务
5.获取到某个服务的所有特征值uni.getBLEDeviceCharacteristics 遍历res.characteristics
6.一般用不到read的特征值,所以不需要保存,只要保存写和订阅通知的
7.这里需要同时满足(item.properties.notify || item.properties.indicate) && item.properties.write这个条件,通知和写必须同时满足,我这边是这样的,只有同时满足的才能发送和订阅成功,另外,只需要订阅一次!
这里记录下此时的服务id和特征值,用于后面写入数据
8.监听数据uni.onBLECharacteristicValueChange 可以放外面,提前监听,不需要等到订阅通知成功后再进行
9.写入数据 uni.writeBLECharacteristicValue 这里可能会遇到发送超过20字节问题,采用分包发送 ;每发送20字节需要sleep一定时间,这个时间也是看设备反应快慢的,这里根据自己的设备尝试设置合适的值.
源代码自己下载观看,觉得对你有一点帮助的,点个赞支持一下,码字不容易