You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Web Bluetooth API从浏览器向Android Wear OS手表发送文本?

问题解答

一、Web Bluetooth API 向 Android Wear OS 发送消息/通知是否可行?

可行,但需满足以下前提:

  • Wear OS 设备必须支持BLE(蓝牙低功耗),且 Android 端需实现对应的 GATT 服务与特征,用于接收网页传输的数据。
  • 网页必须运行在HTTPS 环境(本地开发可使用localhost),Web Bluetooth API 仅允许安全上下文访问。
  • 用户需手动授权网页访问蓝牙设备。

二、解决requestDevice返回空值的问题

你的代码返回空值,主要是以下几个原因导致:

  1. CHARACTERISTIC_TX未正确定义:optionalServices需要传入完整的蓝牙服务 UUID(格式如0000ffe0-0000-1000-8000-00805f9b34fb),不能使用未赋值的变量。若暂时不确定目标服务 UUID,可先使用通用测试 UUID 或留空。
  2. 设备未暴露可被 Web 蓝牙发现的 GATT 服务:Wear OS 设备需主动广播 BLE 服务,且该服务需标记为允许外部访问,这部分需要在 Android 端编写代码实现。
  3. JSON.stringify无法序列化蓝牙设备对象:device是复杂对象,直接用JSON.stringify会丢失大量属性,导致输出看似空值。应直接打印对象或提取关键属性:
// 替换原console.log写法
console.log("device =", device);
// 或提取指定属性
console.log("设备名称:", device.name, "设备ID:", device.id);

修正后的测试代码示例:

// 替换为你Android端定义的服务UUID,或使用通用测试UUID
const TARGET_SERVICE_UUID = "0000ffe0-0000-1000-8000-00805f9b34fb";
// 对应Android端的发送特征UUID
const TARGET_CHAR_UUID = "0000ffe1-0000-1000-8000-00805f9b34fb";

async function sendMessageToWear() {
  try {
    const device = await navigator.bluetooth.requestDevice({
      acceptAllDevices: true,
      optionalServices: [TARGET_SERVICE_UUID]
    });
    console.log("获取设备成功:", device);
    
    // 连接GATT服务器
    const gattServer = await device.gatt.connect();
    // 获取目标服务
    const service = await gattServer.getPrimaryService(TARGET_SERVICE_UUID);
    // 获取发送特征
    const txCharacteristic = await service.getCharacteristic(TARGET_CHAR_UUID);
    
    // 发送文本消息(转为ArrayBuffer格式)
    await txCharacteristic.writeValue(new TextEncoder().encode("Hello Wear OS!"));
    console.log("消息发送成功");
  } catch (error) {
    console.error("操作失败:", error);
  }
}

三、其他 JavaScript 连接 Android 设备的方式

若 Web Bluetooth API 受限于设备或浏览器支持,可考虑以下方案:

  • WebUSB API:如果 Android 设备开启了 USB 调试并授予 WebUSB 权限,网页可通过 USB 连接设备并传输数据,需 Android 端编写 USB 通信逻辑。
  • WebSocket + 中转服务器:网页与 Wear OS 设备分别连接到同一后端服务器,通过服务器中转实现消息互发。该方案不依赖蓝牙,兼容性更强,但需要网络支持。
  • Web NFC API:若设备支持 NFC,网页可通过 Web NFC API(仅部分主流浏览器支持)与 Android 设备近距离交换数据,适合短距离场景。

内容的提问来源于stack exchange,提问作者Ei Thantar Win

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:42:19