uni-app 华为mate 30 pro 向低功耗蓝牙设备特征值中写入二进制数据 提示的是10007

uni-app 华为mate 30 pro 向低功耗蓝牙设备特征值中写入二进制数据 提示的是10007

开发环境 版本号 项目创建方式
Windows w10 HBuilderX

示例代码:

// 向蓝牙设备发送一个0x00的16进制数据
uni.writeBLECharacteristicValue({
// deviceId:that.shebei_deviceId.toString(),
serviceId:that.serviceId,
characteristicId:that.characteristicId,
deviceId:'19:06:05:C0:00:DE',
// serviceId:'0000FFE0-0000-1000-8000-00805F9B34FB',
// characteristicId:'0000FFE1-0000-1000-8000-00805F9B34FB',
value: that.string2buffer('FAAF031E1D'),
success(res) {
console.log('写入成功')
},
fail(ret) {
console.log('写入失败');
console.log(ret);
// that.$api._error('写入设备失败!');
that.$api._error(ret.code);
},
complete(rets){
console.log('写入完成',rets);
}
})

操作步骤:

  • 没有一次成功的

预期结果:

  • 预计是写入成功,

实际结果:

  • 实际上是写入失败

bug描述:

华为手机,获取到手机的serviceId(),characteristicId(),还有目标设备的deviceId(用的是mac值,值为:),但是提示的是写入失败,能连接上目标设备,目标设备有提示连接音,所以可以确定连接上了,但是在写入的时候,提示的是10007.


更多关于uni-app 华为mate 30 pro 向低功耗蓝牙设备特征值中写入二进制数据 提示的是10007的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

最后怎么样了,大哥

更多关于uni-app 华为mate 30 pro 向低功耗蓝牙设备特征值中写入二进制数据 提示的是10007的实战教程也可以访问 https://www.itying.com/category-93-b0.html


错误代码10007表示BLUETOOTH_WRITE_CHARACTERISTIC_VALUE_FAIL,即向蓝牙特征值写入数据失败。根据您的代码和描述,可能的原因及解决方案如下:

  1. 特征值权限问题:目标特征值可能不支持写入操作(无Write权限)。请通过uni.getBLEDeviceCharacteristics确认特征值的properties是否包含write属性。

  2. 数据格式错误

    • string2buffer方法需确保生成ArrayBuffer。建议直接使用:
      value: new Uint8Array([0xFA, 0xAF, 0x03, 0x1E, 0x1D]).buffer
回到顶部