【问题标题】:Web Bluetooth - Can I retrieve a list of all services within a device?网络蓝牙 - 我可以检索设备内所有服务的列表吗?
【发布时间】:2020-04-19 01:22:06
【问题描述】:

我的项目一直基于发现服务和特征示例项目: https://googlechrome.github.io/samples/web-bluetooth/discover-services-and-characteristics.html

我正在尝试将设备中所有可用服务的列表记录到 Chrome 控制台中。 有可能这样做吗?因为如果我不输入服务ID,我会遇到一个securityError: “啊!SecurityError:Origin 不允许访问任何服务。提示:将服务 UUID 添加到 requestDevice() 选项中的 'optionalServices'。”

我知道 NRF Connect 可以检测到所有服务。

那么我可以在不预先定义服务的情况下从设备中检索所有服务的列表吗?

任何想法都将不胜感激。

【问题讨论】:

    标签: bluetooth-lowenergy web-bluetooth


    【解决方案1】:

    简短回答:不,您必须列出您想要访问的服务。

    Web 蓝牙在设计时考虑到了用户隐私,并且要求应用程序想要访问的服务列在requestDevice 调用中,以便浏览器可以向用户提供适当数量的通信。有一种方法可以请求连接到任何设备acceptAllDevices: true,但没有一种方法可以请求访问设备上的所有服务。

    当您正在开发并需要了解 Chrome 可以在设备上看到什么时,您可以使用chrome://bluetooth-internals/#devices。开始扫描以查找设备,然后选择检查。 (只有部分设备会接受连接。)

    NRF Connect 也是一个出色且功能更强大的工具。

    Web 蓝牙的当前设计不支持构建该级别的诊断应用程序。有关 Web 蓝牙的安全和隐私模型的更多信息,请参见 Web Bluetooth specification。

    一篇关于这些主题的优秀开发人员的文章:https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2014-10-11
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多