前言
微信小程序低功耗蓝牙开发的兼容问题,比我想象的要多,比方说这天,突然发现往蓝牙写入数据以后,就报 10008 系统错误. 我到官方一查,发现就是系统错误,然后我定位到具体的报错位置,发现是 监听报错
官方提示如下:
注意
- 订阅操作成功后需要设备主动更新特征值的 value,才会触发 wx.onBLECharacteristicValueChange 回调。
- 安卓平台上,在调用 notifyBLECharacteristicValueChange 成功后立即调用 writeBLECharacteristicValue 接口,在部分机型上会发生 10008 系统错误
瞧见没,反正就是这么坑,这是个小bug,但是会影响我其他流程的继续执行,
这是第五个坑:
部分机型写入命令后的监听包 10008
看了官方这么说,我改造了一下监听和写入的代码
//调用微信监听的代码
this.notifyBLECharacteristicValueChange(deviceId, serviceId, characteristicId);
//等待 500 毫秒,然后执行写入操作,改造以后,问题没有复现过
setTimeout(function() {
//写入一系列的命令
that.writeCmd();
}, 500);
虽然慢一点,但是整体流程不会出错