Web 支持连接ble 蓝牙协议。今天生病在家,买了一块Led 的柔性显示屏,可以通过App 修改展示的画面。
准备尝试逆向一下,用RN 重新改下。
但试了很久,RN 的环境报错,准备放弃了,忽然发现web 也支持连接蓝牙。于是和Ai 协作完成了这段代码。
能连接上,也能发送数据,但发送后没有变化。可能逆向还没完全成功,先记录下。
async function connectAndSendHi() {
// 指定服务 UUID(全小写格式)
const SERVICE_UUID = '0000ae00-0000-1000-8000-00805f9b34fb';
// 写入特征 UUID(全小写格式)
const WRITE_UUID = '0000ae01-0000-1000-8000-00805f9b34fb';
try {
// 请求设备:仅筛选支持指定服务的设备
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: [SERVICE_UUID] }]
});
// 连接 GATT 服务器
const server = await device.gatt.connect();
// 获取服务
const service = await server.getPrimaryService(SERVICE_UUID);
// 获取写入特征
const writeCharacteristic = await service.getCharacteristic(WRITE_UUID);
// 将 "hi" 转换为 ArrayBuffer(使用 TextEncoder)
const encoder = new TextEncoder();
const data = encoder.encode("hi");
// 写入数据到特征
await writeCharacteristic.writeValue(data);
console.log("数据发送成功: hi");
// 如果不再需要连接,建议断开连接
// server.disconnect();
} catch (error) {
console.error("连接或发送数据时出错:", error);
}
}
// 调用函数
connectAndSendHi();