收藏
回答

小程序向蓝牙写入二进制数据调用 wx.writeBLECharacteristicValue 报错?

var that = this;

let buffer = new ArrayBuffer(5)

let dataView = new DataView(buffer)

//写入通道指令

dataView.setUint8(0, 0x1B)

dataView.setUint8(1, 0x11)

dataView.setUint8(2, 0x03)

dataView.setUint8(3, 0x00)

dataView.setUint8(4, 0x00)

console.log("发送的数据:")

for (let i = 0; i < dataView.byteLength; i++) {

console.log("0x" + dataView.getUint8(i).toString(16))

}


wx.writeBLECharacteristicValue({

deviceId: that.data.deviceId,

serviceId: that.data.service_id,

characteristicId: that.data.write_id,

// 这里的value是ArrayBuffer类型

value: buffer,

success: function(res) {

console.log('写入成功', res.errMsg)

},

fail(res) {

console.log('写入失败', res.errMsg)

},

complete: function() {

console.log("写入完成");

}

在调用 wx.writeBLECharacteristicValue时一直报错,错误信息如下

{errCode: 10008, errMsg: "writeBLECharacteristicValue:fail write characteris…ror. 10008, errMsg=The value's length is invalid."}

还了好几个手机都不行,我的deviceId,serviceId,characteristicId 都是通过api获取到的。

测试机型有 iphone7p,华为p10,红米

小程序的基础库是 2.11.1

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

1 个回答

  • 软件开发,网站,小程序
    软件开发,网站,小程序
    2020-05-29

    写入二进制数据?你要啊看设备怎么支持的,你写如数据是干什么用的呢

    2020-05-29
    有用
    回复 2
    • Alan
      Alan
      2020-06-01
      就是给设备发送一条指令,然后让设备返回一些数据
      2020-06-01
      回复
    • 软件开发,网站,小程序
      软件开发,网站,小程序
      2020-06-01回复Alan
      这个你得问问设备厂家,它提供什么方式的数据
      2020-06-01
      回复
登录 后发表内容
问题标签