收藏
回答

微信小程序 监听特征值返回成功但是没有真正的监听成功

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.notifyBLECharacteristicValueChange 微信安卓客户端 8.0.0 2.14.0

这个问题仅在安卓手机上会出现,并且只在特定的芯片中出现。

1、蓝牙连接成功后,获取设备服务成功后,获取设备特征值成功后进行监听蓝牙特征值变化。

wx.notifyBLECharacteristicValueChange({
              deviceId:deviceId,
              serviceId:serviceId,
              characteristicId: NotifyCharactersticUUID,
              statetrue,
              success:(res2) =>{   
                console.log('监听特征值成功',res2)  
              },
              fail:(res2) => {
                console.log("notify fail", res2)
              },
              complete:(res2) =>{                      
                wx.onBLECharacteristicValueChange((characteristic) => {
                  const data = Array.prototype.slice.call(new Uint8Array(characteristic.value ))
                  console.log('设备返回的特征值',data)
                  father.onCharacteristicsHandler(data)
                })
              }
            })


2、这个时候可以看到接口返回的是监听特征值成功了

但是这个时候一直没有特征值返回。

3、于是打开另一个软件nRF Connect 连接上这台设备,并在这里监听特征值变化


4、监听成功后,我返回到小程序,可以看到此时立即有特征值返回了

5、可以判断是接口没有真正的监听特征值成功。


回答关注问题邀请回答
收藏

3 个回答

  • belief
    belief
    2021-01-28

    开启,监听,发送,接受 这样只要向设备发送了数据,就能接受到数据啊


    2021-01-28
    有用
    回复 5
    • 斑马
      斑马
      2021-01-28
      有些设备是可以,有些不行,微信底层没封装好
      2021-01-28
      回复
    • belief
      belief
      2021-01-28回复斑马
      在硬件方面查看,确定是手机向蓝牙设备发送数据,蓝牙设备返回了数据,手机端出现丢包或者没收到数据
      2021-01-28
      回复
    • 斑马
      斑马
      2021-01-29回复belief
      对芯片已经进行数据抓包,硬件是确实是有返回数据的。用别的软件也能监听特征值成功。
      2021-01-29
      回复
    • belief
      belief
      2021-01-29回复斑马
      有没有代码片段啊,一起研究一下
      2021-01-29
      回复
    • 斑马
      斑马
      2021-02-02回复belief
      监听特征值的代码就是上面那里啦,其它和官方给出来的案例是一样的。
      2021-02-02
      回复
  • 风禾
    风禾
    2021-01-28

    我一直把onBLECharacteristicValueChange写在notifyBLECharacteristicValueChange的前面,没有出现过你说的问题,可以试一下能不能解决。

    2021-01-28
    有用
    回复 2
    • 斑马
      斑马
      2021-01-28
      监听低功耗蓝牙设备的特征值变化事件。必须先启用 notifyBLECharacteristicValueChange 接口才能接收到设备推送的 notification。
      2021-01-28
      回复
    • 风禾
      风禾
      2021-01-28回复斑马
      谢谢科普但是这个我知道。很明显,先调用onBLECharacteristicValueChange跟你说的不冲突,我觉得不仅不冲突反而更合理。不好意思没有帮到你,你开心就好。
      2021-01-28
      回复
  • 斑马
    斑马
    2021-01-28

    请问这个bug什么时候会解决?

    2021-01-28
    有用
    回复
登录 后发表内容
问题标签