HarmonyOS 关于向低功耗蓝牙设备写入特定的特征值的问题(打印机数据传输)
目前的情况:写入成功,但是打印机未有任何响应。简化后的步骤:
- 搜索设备。
- 连接。
- 获取services。
- 遍历所有services下的characteristic,找到第一个write为true的characteristic。
- 写入特征值。
遇到的问题:在第4步中获取到characteristic,它的descriptors为空数组,而写入特征值的时候需要descriptor对象,尝试了2种方式:使用write:true的特征的数据 + 其他特征的descriptor。使用同一个特征的所有数据(但write = false)。均未报错,但打印机无响应。
以下是提供的写入特征值demo代码,直接取的descriptors[0]。
writeCharacteristicValue() {
if (!this.gattServiceInfo) {
this.characteristicValue = '';
console.log('BluetoothPage bluetooth gattServiceInfo is undefined ');
return
}
let services: ble.GattService = this.gattServiceInfo;
console.log('ble1,services.characteristics', JSON.stringify(services.characteristics))
let descriptors: Array<ble.BLEDescriptor> = [];
let descriptor: ble.BLEDescriptor = {
serviceUuid: services.serviceUuid,
characteristicUuid: services.characteristics[0].characteristicUuid,
descriptorUuid: services.characteristics[0].descriptors[0].descriptorUuid,
descriptorValue: services.characteristics[0].descriptors[0].descriptorValue
};
descriptors[0] = descriptor;
let characteristic: ble.BLECharacteristic = {
serviceUuid: services.serviceUuid,
characteristicUuid: services.characteristics[0].characteristicUuid,
characteristicValue: Utils.string2ArrayBuffer(this.cValue),
descriptors: descriptors
};
try {
if (this.gattClient) {
this.gattClient.writeCharacteristicValue(characteristic, ble.GattWriteType.WRITE);
promptAction.showToast({
message: '特征值写结束'
})
console.log('BluetoothPage writeCharacteristicValue finish');
}
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 蓝牙读取特征值问题
43浏览 • 1回复 待解决
HarmonyOS 实现蓝牙连接打印机发送数据
224浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
416浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
507浏览 • 1回复 待解决
HarmonyOS 视频流数据传输
472浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3295浏览 • 1回复 待解决
HarmonyOS next系统,如何判断设备是否支持低功耗蓝牙?
186浏览 • 0回复 待解决
关于鸿蒙BLE蓝牙低功耗例子代码,求助?
4525浏览 • 1回复 待解决
HarmonyOS系统是否提供了打印机的打印服务?
463浏览 • 1回复 待解决
Codelabs BLE蓝牙低功耗 例程不能发现外围蓝牙设备,应该如何差找问题呢?
5327浏览 • 1回复 待解决
HarmonyOS 如何选择打印机实现打印功能
55浏览 • 1回复 待解决
HarmonyOS 应用需采集HarmonyOS设备唯一标识/特征值
64浏览 • 1回复 待解决
HarmonyOS 数据传输类型的长后台任务防止冻结
50浏览 • 1回复 待解决
HarmonyOS 调用打印机界面的demo
39浏览 • 1回复 待解决
HarmonyOS 便携式移动打印机
45浏览 • 1回复 待解决
手机如何与电脑端进行数据传输
3363浏览 • 1回复 待解决
通过USB连接打印机打印小票时报错
446浏览 • 1回复 待解决
codelabs 中的蓝牙没有数据传输的示例,我在api中也没看见,有人知道怎么传数据吗?
4139浏览 • 1回复 待解决
HarmonyOS 下是否支持低功耗蓝牙通信,是否有相关的demo?
236浏览 • 1回复 待解决
ArkTS USB作为数据传输的代码示例咋没看到啊!
3096浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何利用@Sendable优化鸿蒙应用的数据传输效率
130浏览 • 1回复 待解决
openharmony如何实现连接打印机打印相关内容?
3293浏览 • 1回复 待解决
HarmonyOS 向蓝牙设备写数据,要用什么接口
23浏览 • 1回复 待解决
descriptors不是必填项,可以将其直接设置为空数组。