- 当前 Bug 的表现(可附上截图)
在Android手机上,成功调用wx.notifyBLECharacteristicValueChange后,调用wx.writeBLECharacteristicValue不能触发wx.onBLECharacteristicValueChange设置的回调函数,但在iOS手机上能够触发回调函数。
- 预期表现
回调函数被触发
- 复现路径
调试环境:小米6 Pro,Android 8.1.0,微信6.7.3
第一步,定义回调方法:
const onBleCharRead = res => { … }
第二步,调用wx.onBLECharacteristicValueChange(onBleCharRead)设置回调监听
第三步,调用wx.notifyBLECharacteristicValueChange方法启用指定characteristic的notify功能(提示成功)
第四步,调用wx.readBLECharacteristicValue方法读取另外一个characteristic的数据(此时onBleCharRead回调被触发)
第五步,调用wx.writeBLECharacteristicValue方法向指定的characteristic些数据(数据长度20字节)
进行第五步时onBleCharRead一直不会被触发,尝试过在write之前延迟一段时间(最长1s),但仍然不能解决问题。
相关日志如下:
参考这篇帖子已经解决了:wx.onBLECharacteristicValueChange 在安卓无回调。
在notifyBLECharacteristicValueChange方法里面增加了以下参数:
type: ‘notification’