如何用HarmonyOS鸿蒙Next的socket.sppWrite向蓝牙模块发送字符串
如何用HarmonyOS鸿蒙Next的socket.sppWrite向蓝牙模块发送字符串
这个函数是只能发送number类型的数据吗,如果想要发送字符串的话该怎么操作,在一篇博客看到转字符也没用
// 字符串转成字节流
function stringToUint8Array(str: string) {
console.info('字符串转成字节流:' + new Uint8Array(buffer.from(str, 'utf-8').buffer);
return new Uint8Array(buffer.from(str, 'utf-8').buffer);
}


更多关于如何用HarmonyOS鸿蒙Next的socket.sppWrite向蓝牙模块发送字符串的实战教程也可以访问 https://www.itying.com/category-93-b0.html
伙伴您好,此方法需要传入ArrayBuffer,您可以参考以下代码将string转为ArrayBuffer:
strToArrayBuffer(str: string) {
let buf = new ArrayBuffer(str.length * 2);
let bufView = new Uint8Array(buf);
for (let i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return bufView.buffer;
}
Uint8Array是8位无符号整型数组,里面的元素只能为无符号整型,不能为string。您可以如上代码所述,通过Uint8Array对象的buffer,获取其所关联的ArrayBuffer。
更多关于如何用HarmonyOS鸿蒙Next的socket.sppWrite向蓝牙模块发送字符串的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用socket.sppWrite
向蓝牙模块发送字符串的步骤如下:
- 建立连接:首先通过
BluetoothSocket
建立与蓝牙设备的连接。 - 获取输出流:使用
BluetoothSocket
的getOutputStream()
方法获取输出流。 - 发送数据:调用
socket.sppWrite()
方法,将字符串转换为字节数组后发送。
示例代码:
BluetoothSocket socket = ...; // 已建立的蓝牙连接
String data = "Hello, Bluetooth!";
byte[] bytes = data.getBytes(StandardCharsets.UTF_8);
socket.sppWrite(bytes, 0, bytes.length);
确保蓝牙模块已配对并连接,且权限已正确配置。