安卓手机上onBLECharacteristicValueChange不能触发
发布于 5 年前 作者 songfang 1317 次浏览 来自 问答
  • 当前 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),但仍然不能解决问题。

相关日志如下:

2 回复

参考这篇帖子已经解决了:wx.onBLECharacteristicValueChange 在安卓无回调

在notifyBLECharacteristicValueChange方法里面增加了以下参数:

type: ‘notification’

回到顶部