收藏
回答

安卓手机上onBLECharacteristicValueChange不能触发

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.onBLECharacteristicValueChange 客户端 6.7.3 2.4.2 [199]

- 当前 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),但仍然不能解决问题。


相关日志如下:



最后一次编辑于  2018-12-22
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-12-24

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2018-12-24
    赞同
    回复 4
    • 江
      03-26

      谢谢,问题目前是解决了,下面已经回复。不过type这个参数在官方文档里面是没有的,建议增加一下,或者在接口里面处理Android的情况

      03-26
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      03-26回复

      好的,感谢反馈,后面我们在文档那里补充下

      03-26
      回复
    • Wm
      Wm
      04-13回复

      怎么解决的 ?


      04-13
      回复
    • 江
      04-13回复Wm

      wx.notifyBLECharacteristicValueChange的参数里面增加:

      type: 'notification'

      04-13
      回复
  • 江
    03-26

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

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

    type: 'notification'


    03-26
    赞同
    回复