Web 支持连接ble 蓝牙协议

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();

通过 Web 控制蓝牙设备:WebBluetooth入门

Leave a Comment

邮箱地址不会被公开。 必填项已用*标注