问题标签 [web-bluetooth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1838 浏览

android - 如何修复 Web 蓝牙 API 中的“DOMException”错误?

我正在 Android 中设置蓝牙 LE GATT 服务器,并希望在 Chrome 中使用 Web 蓝牙 API 作为 GATT 客户端来检查它是否正常工作。实际上,这是我稍后在 Android 中构建 FIDO Authenticator 的第一步。

首先,我尝试将我的服务的 uuid 设置0000fffd-0000-1000-8000-00805f9b34fb在我的 Android 应用程序中。像这样的东西:

然后,我在 Chrome 中执行了以下 Javascript 代码来检查是否可以建立连接。

但是,我只得到了如下异常

当我将 uuid 更改为另一个,例如62893031-5e68-4a71-94e4-01fb81f16818在我的 Android 代码中时,它就起作用了!(我的意思是它能够连接到我的手机,我可以在 Chrome 的控制台中看到我的设备信息)

我不知道到底是什么问题。我以前的 uuid 有什么问题?如何调试它以了解根本原因?

感谢您的检查!

0 投票
1 回答
1640 浏览

javascript - 我可以通过网络蓝牙发送文件吗?

我目前正在开发一个嵌入式系统,可以计算汽车的数量并节省他们的速度和时间。所有这些数据都存储在一个简单的日志文件中(感谢 rsyslog)。同时,我开发了一个 web-API(在 Typescript/Angular 和 Electron 中用于桌面,后来也用于 Web),它允许用户上传日志并将它们本地存储在他的笔记本电脑上。

我设置了 GATT 服务器,我可以通过 Web 蓝牙获取简单的数据,如电池和状态,但是,我可以通过 Web 蓝牙发送/接收文件吗?或者可以一块一块地寄?

我尝试了第二种方法,最大大小是每帧 512 字节,所以我将文件大小除以 512 并将 X 帧发送到 Web-App 但我不知道这是否可能,因为我不能几天后有一些工作......然后,我在蓝牙的网站上找到了这个: https : //www.bluetooth.com/specifications/gatt/services/ GATT 存在“对象传输服务”,但是当你点击我们可以阅读:“此服务提供管理和控制功能,支持通过单独的 L2CAP 连接 orientel 通道发生的批量数据传输”。这是否意味着我们不能发送文件?

我应该改变我的计划并使用协议吗?我还想将文件从笔记本电脑发送到嵌入式系统,例如配置文件和参数。

0 投票
2 回答
180 浏览

android - 具有自定义 GATT 服务的网络蓝牙?

首先,BLE 外设模拟器的源代码对于任何研究 Web 蓝牙的人来说都是一个巨大的资源。

有一份批准的GATT 服务清单。

当我修改 Android 源代码以使用自定义的 GATT 服务(只需在 Android 代码中指定您自己的 UUID 即可轻松完成)时,从网页到运行 GATT 服务器的 Android 应用程序的配对失败。

Web 蓝牙文档确实声明, “如果设备的广告服务 UUID 与服务 UUID 集合具有非空交集,则将设备添加到结果并中止这些子步骤 [用于配对]。”

这是否意味着仅支持已批准的 GATT 列表中的服务?如果是这样,那么合理的原因是什么?似乎这样的限制会限制创新。

0 投票
1 回答
73 浏览

google-chrome - 如果冻结,如何停止异步 gatt.connect()

由于某些原因,通过网络蓝牙连接到 BLE 设备时有时会冻结。

例如,当触发“await gatt.connect()”时,如果它永远冻结,我希望取消此过程并为用户提供再次开始连接过程的可能性。有什么建议么?

在我的情况下,如果设备没有响应,并且由于刷新页面不是选项,我需要一些优雅的方法来取消此连接请求,这可能会发生。或者,也许我想错了,还有其他方法可以处理连接设备的东西?

0 投票
1 回答
47 浏览

bluetooth - chrome.bluetoothLowEnergy 未定义,即使我添加了 low_energy 标志

我正在尝试编写一个连接到蓝牙低功耗设备的 chrome 应用程序。我添加"bluetooth": { "low_energy": true }到我的清单:

但是当我打电话时

我得到错误

医生说这是我应该做的

https://developer.chrome.com/apps/manifest/bluetooth#reference

0 投票
1 回答
162 浏览

google-chrome - 更改 Chrome 中的安全设置以允许不受限制的蓝牙访问

我正在开发一个使用Chrome 的蓝牙 API的应用程序。开发非常烦人,因为每次我更改代码时,页面都会重新加载,我需要请求权限才能再次连接到蓝牙设备,而这些权限只能通过手动点击界面来授予

会触发这个(抱歉截图是德语)

在此处输入图像描述

无法保存和恢复蓝牙权限

这打算在某天成为可能,但它是 Chromium 项目中正在进行的一项工作。

现在我想知道,是否可以通过任何方式更改 chrome 中的设置以放松安全设置以允许我仅访问蓝牙而无需被授予访问权限?不是通过 JavaScript,而是通过 Chrome 中的某些设置或sudo我可以执行的某些命令?

0 投票
1 回答
97 浏览

bluetooth-lowenergy - 如何使用网络蓝牙将存在 CRC 的命令正确发送到特征?

我收到了要发送到 BLE 设备的命令,它应该如下所示:

WEB-Bluetooth 是否支持这种类型的命令?如果是怎么寄?

我尝试过但失败的是,例如。命令应该是“R”,“数据”是可选的。所以我的步骤: 1. 将 'R' 转换为 ASCII 码 2. 对于 CRC,我从这个链接http://www.sunshine2k.de/coding/javascript/crc/crc_js.html 'Result CRC value' 最终转换为二进制收到 2 个字节。所以我把它传递给特征:

尝试为每个可用特征设置侦听器“characteristicvaluechanged”,但未收到响应。

有什么帮助吗?

PS另一个我的数据接收东西很好用。但是根据设备文档,有效的命令格式不同。问题仅在于这种格式的命令

0 投票
0 回答
264 浏览

google-chrome - Web 蓝牙特性特征值在手机上改变

我需要从具有 Web 蓝牙的 BLE 设备中读取多个特征的值。这一切在我的 Mac OSX Chrome 上运行良好,但我在手机的 Chrome 上只收到一个通知(运行 Android 9 的 One+ 6T)。它连接到设备,找到特征,但它只接收第一个值变化,然后就是这样。

任何想法/帮助将不胜感激!

0 投票
1 回答
377 浏览

javascript - 如何通过 web-bluetooth API 向设备发送 hex?

我已经通过 web-Bluetooth API 连接到设备。现在我有一个十六进制字符串发送到设备:01113704B00000313233343132160506155001DB. 此十六进制字符串无法正确发送到设备。如何将此十六进制发送到设备?

我尝试使用 hex-to-array-buffer(NPM 插件)并自己编写了该方法。他们不工作。

这是我的代码:

0 投票
1 回答
1366 浏览

android - 为什么 navigator.bluetooth 可能未定义?

平板电脑:联想tab4 8

安卓版本:8.1

安卓 Chrome 版本:76.0.3809.111

设置中的蓝牙“开关”已打开。

正在为网站提供服务https://

然而:navigator.bluetoothundefined

  • 这意味着这个页面,它做有用的蓝牙事情,在这个平板电脑上不起作用。

是否有任何其他设置或我可能缺少的东西?

提前感谢您的时间和考虑。