pig*_*yte 5 javascript web-bluetooth
是否可以在没有配对屏幕的情况下连接我知道 ID 的蓝牙设备?
classic:
navigator.bluetooth.requestDevice ({filters: [{services: ['heart_rate']}]})
.then (device => {
this.device = device;
return device.gatt.connect ();
Run Code Online (Sandbox Code Playgroud)
相反,我想在没有 navigator.bluetooth.requestDevice 的情况下执行 device.gatt.connect () ..至少对于我已经连接过一次或我知道 ID 的设备。
有人能帮我吗?..谢谢你!
Web 蓝牙规范的蓝牙权限 API 集成部分确实指定了一种使用设备 ID 来执行此操作的方法。但是,目前还没有在任何浏览器中实现它。
Chrome 中正在进行的工作是实现一种getDevices()可以返回先前授予的蓝牙设备列表的方法。可以在Chrome Platform Status中检查该 API 的状态。
2020 年 6 月 22 日编辑:
我最近实现了一个新的权限后端以及两个 API,可以使用之前允许的蓝牙设备。
新的权限后端是在 chrome://flags/#enable-web-bluetooth-new-permissions-backend 后面实现的。新后端将保留授予的设备权限,requestDevice()直到在“站点设置”或“页面信息”对话框中重置权限为止。
对于 Chrome 85.0.4165.0 或更高版本,和在 chrome://flags/#enable-experimental-web-platform-features 标志后面实现getDevices()。watchAdvertisements()建议使用这些 APIgetDevices()来检索允许的蓝牙设备数组,然后调用watchAdvertisements()这些设备来开始扫描。当从设备检测到广告数据包时,advertisementreceived将在其对应的设备上触发该事件。此时,蓝牙设备在范围内并且可以连接。
请尝试一下这个新功能,并使用 Blink>Bluetooth 组件在https://crbug.com上提交任何错误。