uniapp兼容问题-BLE低功耗蓝牙微信小程序读写和监听正常,编译成安卓app监听不到数据
·
应用场景
需要试移动端连接蓝牙获取和修改硬件设备数据
根据uniapp文档编写代码,微信小程序调试没有问题,但是打包成安卓app的时候onBLECharacteristicValueChange接收不到uni.writeBLECharacteristicValue(OBJECT)写入后设备返回的数据
原因
获取设备服务uni.getBLEDeviceServices(OBJECT)和特征值uni.getBLEDeviceCharacteristics(OBJECT)的时候,这两个接口返回的都是数组,我原来是把所有返回支持 notify 或者 indicate的特征值都串行用uni.notifyBLECharacteristicValueChange(OBJECT)启用了一次,uni.writeBLECharacteristicValue(OBJECT)使用的是找到所有特征值里面的一个符合write== true作为参数(Array.find(item=>item.properties.write))
解决
在uni.notifyBLECharacteristicValueChange(OBJECT)只启用一次和uni.writeBLECharacteristicValue(OBJECT)写入(有设备相应)这两个接口中使用同一个一个特征值,符合
(Array.find(item => (item.properties.notify || item.properties.indicate) && item.properties.write))
后监听数据正常接收
解决后日志正常接收蓝牙数据

更多推荐


所有评论(0)