【问题标题】:Web Bluetooth: Why are most devices "Unknown or unsupported"?网络蓝牙:为什么大多数设备“未知或不受支持”?
【发布时间】:2021-08-04 10:34:12
【问题描述】:

我正在使用网络蓝牙连接到设备并读取名称和电池电量。 我让它工作了,但我想连接的设备是“未知或不受支持”,但我不知道为什么。在 requestDevice() 上,我只得到我的 Iphone 和许多未知设备。

当我检查chrome://bluetooth-internals 上的蓝牙设备时,我看到了一些已知设备,但不是我要查找的设备。我必须根据最新的 RSSI 猜测正确的设备。这对用户不友好。

有没有办法解决这个问题?或者有人可以解释为什么几乎所有设备都是未知或不受支持的。

我使用的是 Mac。 (以防万一)

更新@François Beaufort
nRF Connect 应用程序的屏幕截图。在应用程序中,设备有一个名称。我刚刚看到该设备在bluetooth-internals 中也有一个名称,但它似乎并不总是宣传它的名称。

上面写着Device type: Google,但它不是来自 Google 的设备。

【问题讨论】:

  • 如果您使用通用的低功耗蓝牙扫描和探索工具,例如nRF Connect,设备会显示吗?您没有说您要查找的设备是什么。是advertising 还是local name?它是 BLE 设备吗?
  • @ukBaz 它没有出现在 nRF Connect 上。我想用 BLE 连接耳塞。我如何检查它是否在宣传其本地名称?我不认为它在做任何广告。

标签: bluetooth bluetooth-gatt web-bluetooth


【解决方案1】:

您在蓝牙浏览器选择器中看到的名称是蓝牙设备的人类可读名称。蓝牙设备可能有两种不同的名称类型:一种是蓝牙设备宣传的,另一种是蓝牙设备在其数据库中作为其蓝牙低功耗通用访问配置文件 (GAP) 设备名称发布的。如果蓝牙设备同时具有这两种名称,您将获得 GAP 设备名称。

如果您看到"Unknown or Unsupported Device (12:34:56:78:9A:BC)",则表示蓝牙设备没有宣传其名称。为了减少蓝牙选择器中的噪音,我建议您使用其他过滤器,例如"services",如果您发现您的蓝牙设备有一些广告。查看完整的开发者文档https://web.dev/bluetooth/#services-filter

navigator.bluetooth.requestDevice({ filters: [{ services: ['battery_service'] }] })
.then(device => { /* … */ })
.catch(error => { console.error(error); });

更新:您可以在 Chrome 93 的“服务”列中的chrome://bluetooth-internals/#devices 看到广告服务。请参阅https://chromiumdash.appspot.com/commit/49610d372d4d479f43e918d7bbf14537efd2769c

【讨论】:

  • 谢谢!但是对于列表中的所有设备,chrome://bluetooth-internals/#devices 页面上的 Services 列是空的。它适用于所有Unknown。这是否意味着该设备不宣传任何服务?当我连接设备时,它有 5 项服务可用。
  • 是的。这意味着您附近的蓝牙设备不会遗憾地宣传服务。你能分享一个扫描你感兴趣的蓝牙设备的 NRFConnect 应用程序的屏幕截图吗?我想知道您是否可以使用其他过滤器来获取它。见play.google.com/store/apps/…
  • 我用截图更新了问题。
  • 似乎为该设备宣传了服务 UUID 0xFE61navigator.bluetooth.requestDevice({ filters: [{ services: [0xFE61] }] }) 会为你工作吗?如果没有,您可能需要使用制造商数据过滤器(在 Chrome 92 - chrome.com/canary 中可用)和 navigator.bluetooth.requestDevice({ filters: [{ manufacturerData: [{ companyIdentifier: 0x01DA }] }] }) 之类的东西。见stackoverflow.com/questions/67020600/…
  • 服务上的过滤器有效!谢谢!
猜你喜欢
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多