HarmonyOS 鸿蒙Next BLE蓝牙读写特征值,错误码 2900099

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next BLE蓝牙读写特征值,错误码 2900099 设备连接成功后,进行特征值读写,

write(data: ArrayBuffer, noResponse: Boolean = false) {
  LogUtils.d("Device", "enter write data: " + data)
  if (this.gattClientDevice != null && this.writeCharacteristic != null) {
    this.writeCharacteristic.characteristicValue = data
    this.gattClientDevice.writeCharacteristicValue(this.writeCharacteristic,
      noResponse ? ble.GattWriteType.WRITE_NO_RESPONSE : ble.GattWriteType.WRITE, (code:BusinessError)=>{
        LogUtils.d("Device", "write code = " + code.message)
        if (code != null) {
          return;
        }
        LogUtils.d("Device",'bluetooth writeCharacteristicValue success');
      })

  }
}

结果

write code = BussinessError 2900099: Operation failed

设置读特征值的时候也是2900099,这种情况原因可能是什么,如何解决?


更多关于HarmonyOS 鸿蒙Next BLE蓝牙读写特征值,错误码 2900099的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

在调用writeCharacteristicValue接口前是不是调用了SetNotifyCharacteristicChanged接口,可能是该接口还未执行完毕,导致调用WriteDescriptorValue时,显示设备忙,导致异常。建议在调用前加延时规避。

更多关于HarmonyOS 鸿蒙Next BLE蓝牙读写特征值,错误码 2900099的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


还真是,我暂时先注释setCharacteristicChangeNotification,居然可以了,

我调用setCharacteristicChangeNotification报错2900007怎么办呀,不设置监听直接调用WriteDescriptorValue时报错descriptor not exist

请问给这个SetNotifyCharacteristicChanged接口加了延时,还是发送数据失败{“code”:-1,“message”:“Inner error.”}返回这个是怎么回事,

同样遇到这个问题,尚未解决

针对帖子标题中提到的HarmonyOS(鸿蒙)Next BLE(蓝牙低功耗)蓝牙读写特征值时遇到的错误码2900099,这里给出直接相关的解答:

错误码2900099在鸿蒙BLE开发中通常指示一个特定的蓝牙操作失败。这种错误可能由多种原因引起,包括但不限于:

  1. 特征值权限问题:确保你的应用有足够的权限去读写目标设备的特定特征值。检查设备的BLE服务声明和特征值权限设置。

  2. 连接状态:错误可能发生在BLE连接不稳定或已断开时。确保在进行读写操作前,BLE连接是活跃的。

  3. 设备兼容性:某些BLE设备可能不完全兼容鸿蒙系统的BLE实现。尝试与其他设备或不同版本的鸿蒙系统测试,看是否能复现问题。

  4. 特征值格式:检查写入的数据格式是否符合特征值的要求。不匹配的格式可能导致写入失败。

  5. 蓝牙栈问题:可能是鸿蒙蓝牙栈的bug或限制。关注鸿蒙系统的更新日志,看是否有相关的修复或说明。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部