bluetooth - 网络蓝牙:为什么大多数设备“未知或不受支持”?
问题描述
我正在使用网络蓝牙连接到设备并读取名称和电池电量。我让它工作了,但我想连接的设备是“未知或不受支持”,但我不知道为什么。在 requestDevice() 上,我只得到我的 Iphone 和许多未知设备。
当我检查蓝牙设备时,chrome://bluetooth-internals
我看到了一些已知设备,但不是我正在寻找的设备。我必须根据最新的 RSSI 猜测正确的设备。这不是用户友好的。
有没有办法来解决这个问题?或者有人可以解释为什么几乎所有设备都是未知或不受支持的。
我正在使用 Mac。(如果这很重要)
更新@François Beaufort
nRF Connect 应用程序的屏幕截图。在应用程序中,设备有一个名称。我刚刚看到该设备也有一个名字bluetooth-internals
,但它似乎并不总是宣传它的名字。
它说Device type: Google
但它不是谷歌的设备。
解决方案
您在蓝牙浏览器选择器中看到的名称是蓝牙设备的人类可读名称。蓝牙设备可能有两种不同的名称类型:一种是蓝牙设备宣传的,另一种是蓝牙设备在其数据库中作为其蓝牙低功耗通用访问配置文件 (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://bluetooth-internals/#devices
在 Chrome 93 的“服务”列中看到广告服务。请参阅https://chromiumdash.appspot.com/commit/49610d372d4d479f43e918d7bbf14537efd2769c
推荐阅读
- python - 我在 Windows Scheduler 中安排了一个 Python 脚本,但该脚本无法正常工作
- react-navigation - 导航回从一个堆栈到另一个堆栈的反应导航
- python - 有没有办法在 PySpark 中为 pandas_udf 设置最小批量大小?
- bash - 具有第三个参数的 bash 函数是一个数组
- mysql - Django每月将数据库值重置为0?
- r - 无法在 R Notebook (Rstudio) 上运行 Dataframes 块
- android - Kivy:在特定时间发送通知
- python - iJson.items() 是否在迭代之前将整个 JSON 文件加载到内存中?
- javascript - 如何在 DOM 中的节点/节点上执行鼠标单击
- python - 使用 SeleniumRequest 时遇到棘手的硒问题