【问题标题】:Web Bluetooth API not showing custom servicesWeb 蓝牙 API 未显示自定义服务
【发布时间】:2021-03-20 03:49:48
【问题描述】:

我有一个具有两项服务的低功耗蓝牙设备:

  1. 电池服务
  2. 发送 GPS 坐标的定制服务

我的 JavaScript 可以在这里查看 - https://reverent-turing-cbe90d.netlify.app/ - 您需要自己的 Google Maps API 密钥,但蓝牙功能不需要地图。

自定义服务的uuid为00000001-5D8B-474C-AC79-AB44EDE9EF2F。

我用于外围设备的代码可以在这里找到 - https://drive.google.com/file/d/1uljTZe2mbeOAsqiXuf1iLnQBFB91PO70/view?usp=sharing

这两种服务都可以在桌面 Chrome 86.0.4240.198 上运行,但是在我的 OnePlus 8 Pro 上使用 Chrome 86.0.4240.198 我只能看到电池服务。

我怎样才能让它同时在桌面和移动设备上运行?

【问题讨论】:

    标签: javascript bluetooth-lowenergy web-bluetooth


    【解决方案1】:

    在移动设备上,您是否在蓝牙浏览器选择器中看到该设备? 如果没有,可以用optionalServices看看吗?

    navigator.bluetooth.requestDevice({
      filters: [
        {
          services: ["battery_service"],
          optionalServices: ["00000001-5d8b-474c-ac79-ab44ede9ef2f"],
        },
      ],
    });
    

    如果您看到它们,我会假设 getPrimaryServices() 不会返回您的“发送 GPS 坐标的自定义服务”。 如果是这样,您可以尝试使用下面的代码专门调用它并分享错误吗?

    const customService = await server.getPrimaryService("00000001-5d8b-474c-ac79-ab44ede9ef2f");
    

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多