收藏
回答

BLE下ISO使用writeBLECharacteristicValue失败

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.writeBLECharacteristicValue(OBJECT) 客户端 iOS 6.7.1 2.2.2

同样的代码,在安卓手机可以正常调用writeBLECharacteristicValue向蓝牙设备写入,但是在iphone手机(版本11.2.2)上调用,返回错误编码10008,错误信息“the value's length is invalid”,请大佬告知如何解决。代码如下:

wx.notifyBLECharacteristicValueChange({

     state: true,

     deviceId: deviceId,

     serviceId: notifyserviceId,

     characteristicId: notifycharacteristicId,

     success: function (res) {

       console.log("notify success")

       setTimeout(function () {

         that.writeBLECharacteristicValue(deviceId, writeserviceId, writecharacteristicId)

       }, 2000);

     },

     fail: function (res) {

       console.log("notify fail:" + res.errMsg)

     }, complete : function() {

       wx.onBLECharacteristicValueChange(function (res) {

         console.log(res)

       });

     }

   })

 },

 writeBLECharacteristicValue: function (deviceId, writeserviceId, writecharacteristicId) {

   var that = this

   let buffer = new ArrayBuffer(1)

   let dataView = new DataView(buffer)

   dataView.setUint8(0, 0)

   wx.writeBLECharacteristicValue({

     deviceId: deviceId,

     serviceId: writeserviceId,

     characteristicId: writecharacteristicId,

     value: buffer,

     success: function (res) {

       console.log('write success')

     },

     fail(res) {

       console.log('write fail')

       console.log(res)

     }

   })

 },


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

2 个回答

  • 阿白
    阿白
    2020-06-01

    同样出现这个问题,因为数据是20字节,还说字节length错误

    2020-06-01
    有用
    回复 2
    • 忠于不凡
      忠于不凡
      2021-07-19
      有解决吗  我也遇到同样问题
      2021-07-19
      回复
    • 阿白
      阿白
      2023-04-08回复忠于不凡
      解决了,安卓不同机型 要传 二进制数组。ios要穿16 进制字符串
      2023-04-08
      回复
  • 怡达
    怡达
    2018-08-13

    写入的字节长度改大一些(不超过20个字节)试试吧

    2018-08-13
    有用
    回复 4
    • 小飞机要起飞
      小飞机要起飞
      2018-08-13

      谢谢回复,我设置了16位,还是报错

      2018-08-13
      回复
    • 怡达
      怡达
      2018-08-13回复小飞机要起飞

      iOS下请确保在调用wx.notifyBLECharacteristicValueChange之前已经成功调用下面2个方法:

      wx.getBLEDeviceServices

      wx.getBLEDeviceCharacteristics


      2018-08-13
      回复
    • 小飞机要起飞
      小飞机要起飞
      2018-08-13回复怡达

      已经成功调用这两个方法了,两个方法都返回success

      2018-08-13
      回复
    • 我会好好的
      我会好好的
      2023-12-05
      后面怎么解决的额,垃圾微信小程序,安卓明明都可以的
      2023-12-05
      回复
登录 后发表内容