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 实现蓝牙连接打印机发送数据
2157浏览 • 1回复 待解决
HarmonyOS 蓝牙热敏打印机sdk
905浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
1599浏览 • 1回复 待解决
HarmonyOS 蓝牙读取特征值问题
1033浏览 • 1回复 待解决
HarmonyOS 视频流数据传输
1329浏览 • 1回复 待解决
HarmonyOS 蓝牙开启订阅后,收到的特征值变化消息,无设备数据
1628浏览 • 1回复 待解决
HarmonyOS 低功耗蓝牙设备DeviceId会变化
1165浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
4604浏览 • 1回复 待解决
HarmonyOS系统是否提供了打印机的打印服务?
1577浏览 • 1回复 待解决
如何调用鸿蒙的分布式能力?例如跨设备数据传输
510浏览 • 0回复 待解决
鸿蒙低功耗蓝牙与普通蓝牙的区别?
427浏览 • 0回复 待解决
HarmonyOS 如何选择打印机实现打印功能
1474浏览 • 1回复 待解决
关于鸿蒙BLE蓝牙低功耗例子代码,求助?
5432浏览 • 1回复 待解决
HarmonyOS next系统,如何判断设备是否支持低功耗蓝牙?
1160浏览 • 0回复 待解决
HarmonyOS 数据传输类型的长后台任务防止冻结
866浏览 • 1回复 待解决
HarmonyOS 如何开发低功耗蓝牙(ble)
1119浏览 • 1回复 待解决
HarmonyOS 便携式移动打印机
881浏览 • 1回复 待解决
手机如何与电脑端进行数据传输
4377浏览 • 1回复 待解决
Codelabs BLE蓝牙低功耗 例程不能发现外围蓝牙设备,应该如何差找问题呢?
6241浏览 • 1回复 待解决
HarmonyOS 调用打印机界面的demo
1525浏览 • 1回复 待解决
通过USB连接打印机打印小票时报错
1265浏览 • 1回复 待解决
鸿蒙应用开发中,如何利用IPC Kit进行高效的数据传输?
452浏览 • 0回复 待解决
HarmonyOS 基于低功耗蓝牙信标 (Beacon) 功能支持
1095浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何利用@Sendable优化鸿蒙应用的数据传输效率
1066浏览 • 1回复 待解决
descriptors不是必填项,可以将其直接设置为空数组。