HarmonyOS 鸿蒙Next BLE蓝牙读写特征值,错误码 2900099
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
在调用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开发中通常指示一个特定的蓝牙操作失败。这种错误可能由多种原因引起,包括但不限于:
-
特征值权限问题:确保你的应用有足够的权限去读写目标设备的特定特征值。检查设备的BLE服务声明和特征值权限设置。
-
连接状态:错误可能发生在BLE连接不稳定或已断开时。确保在进行读写操作前,BLE连接是活跃的。
-
设备兼容性:某些BLE设备可能不完全兼容鸿蒙系统的BLE实现。尝试与其他设备或不同版本的鸿蒙系统测试,看是否能复现问题。
-
特征值格式:检查写入的数据格式是否符合特征值的要求。不匹配的格式可能导致写入失败。
-
蓝牙栈问题:可能是鸿蒙蓝牙栈的bug或限制。关注鸿蒙系统的更新日志,看是否有相关的修复或说明。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。