收藏
回答

关于wx.onBLECharacteristicValueChange无法回调的问题?

我现在这边的情况是这样的,写了小程序蓝牙的demo,用的ios测试,但是wx.onBLECharacteristicValueChange这个无法回调,我用的特征值是支持write+notify的,notify是成功开启了,蓝牙设备那边也是观察到写入特征值成功,但是不知道为什么就是不回调这个特征值变化事件,请问有人知道怎么解决吗?

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

3 个回答

  • 那一年
    那一年
    2020-07-28

    调这个,wx.notifyBLECharacteristicValueChange,可能会fail 10008,但其实还是能收到数据

    2020-07-28
    有用
    回复
  • zqp
    zqp
    2020-06-10
      openBluetoothAdapter: function () {
        wx.openBluetoothAdapter({
          success: res => {
            console.log(res);
          }
        })
        
      },
    
    
      connect: function() {
        wx.startBluetoothDevicesDiscovery({
          services: ['0000FEE1-0000-1000-8000-00805F9B34FB'],
          allowDuplicatesKey: true,
          success: res => {
            console.log(JSON.stringify(res));
            wx.getBluetoothDevices({
              success: res => {
                console.log('getBluetoothDevices:' + JSON.stringify(res));
                if(res.devices.length > 0) {
                  this.setData({
                    deviceId: res.devices[0].deviceId
                  })
                  wx.createBLEConnection({
                    deviceId: res.devices[0].deviceId,
                    complete: res => {
                      console.log('createBLEConnection:' + JSON.stringify(res));
                    }
                  })
                }
              }
            })
          }
        });
      },
    
    
      notify: function() {
        wx.getBLEDeviceServices({
          deviceId: '48ADF6C5-261F-D9B0-BD6C-91FCF8B57737',
          complete: function (res) {
            console.log('getBLEDeviceServices:' + JSON.stringify(res));
            wx.getBLEDeviceCharacteristics({
              deviceId: '48ADF6C5-261F-D9B0-BD6C-91FCF8B57737',
              serviceId: '0000FEE1-0000-1000-8000-00805F9B34FB',
              complete: function (res) {
                console.log('getBLEDeviceCharacteristics:' + JSON.stringify(res));
                wx.notifyBLECharacteristicValueChange({
                  deviceId: '48ADF6C5-261F-D9B0-BD6C-91FCF8B57737',
                  serviceId: '0000FEE1-0000-1000-8000-00805F9B34FB',
                  characteristicId: '00001003-0000-1000-8000-00805F9B34FB',
                  state: true,
                  complete: res => {
                    console.log(JSON.stringify(res));
                  }
                })
                wx.onBLECharacteristicValueChange((res) => {
                  console.log('onBLECharacteristicValueChange:' + JSON.stringify(res));
                });
              }
            })
          }
        })
      },
      write: function(){
        let buffer = new ArrayBuffer(1)
        let dataView = new DataView(buffer)
        dataView.setUint8(0, 0)
        wx.writeBLECharacteristicValue({
          deviceId: '48ADF6C5-261F-D9B0-BD6C-91FCF8B57737',
          serviceId: '0000FEE1-0000-1000-8000-00805F9B34FB',
          characteristicId: '00001003-0000-1000-8000-00805F9B34FB',
          value: buffer,
          complete: function (res) {
            console.log('writeBLECharacteristicValue:' + JSON.stringify(res));
            // wx.readBLECharacteristicValue({
            //   deviceId: '48ADF6C5-261F-D9B0-BD6C-91FCF8B57737',
            //   serviceId: '0000FEE1-0000-1000-8000-00805F9B34FB',
            //   characteristicId: '00001003-0000-1000-8000-00805F9B34FB',
            //   success: function(res) {
            //     console.log('readBLECharacteristicValue:' + JSON.stringify(res));
            //   },
            // })
          },
        })
      },
    

    onBLECharacteristicValueChange 没有回调

    手机 iPhone 11 Pro, iOS 13.3

    微信 7.0.12

    2020-06-10
    有用
    回复 4
    • 旁观者丶清
      旁观者丶清
      2020-06-18
      兄弟,请问最后咋解决的,我现在碰到同样的问题
      2020-06-18
      回复
    • 龚红军
      龚红军
      2020-06-24
      解决了吗?
      2020-06-24
      回复
    • 冯建伟
      冯建伟
      2020-06-30
      我的Android也有这样的问题,超过20个字符的长度就收不到
      2020-06-30
      回复
    • Tyler
      Tyler
      2020-07-02回复冯建伟
      开启MTU可以超过20字节,可以阅读蓝牙规范
      2020-07-02
      回复
  • 灵芝
    灵芝
    2020-06-01

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

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