javascript - 已知设备 ID 的 Web 蓝牙绕过配对屏幕
问题描述
是否可以在没有配对屏幕的情况下连接我知道其 ID 的蓝牙设备?
classic:
navigator.bluetooth.requestDevice ({filters: [{services: ['heart_rate']}]})
.then (device => {
this.device = device;
return device.gatt.connect ();
相反,我想在没有 navigator.bluetooth.requestDevice 的情况下执行 device.gatt.connect () .. 至少对于我已经连接过一次或我知道 ID 的设备。
有人能帮我吗?..谢谢你!
解决方案
Web 蓝牙规范的蓝牙权限 API 集成部分确实指定了一种使用设备 ID 执行此操作的方法。但是,它目前没有在任何浏览器中实现。
Chrome 正在进行一项工作,以实现一种getDevices()
可以返回先前授予的蓝牙设备列表的方法。可以在Chrome Platform Status中检查该 API 的状态。
20 年 6 月 22 日编辑:
我最近实现了一个新的权限后端以及两个 API,它们将使以前允许的蓝牙设备能够被使用。
新的权限后端在 chrome://flags/#enable-web-bluetooth-new-permissions-backend 后面实现。新后端将保留授予的设备权限,requestDevice()
直到在“站点设置”或“页面信息”对话框中重置该权限。
getDevices()
和在watchAdvertisements()
Chrome 85.0.4165.0 或更高版本的 chrome://flags/#enable-experimental-web-platform-features 标志后面实现。这些 API 的推荐用途是用于getDevices()
检索允许的 BluetoothDevices 数组,然后调用watchAdvertisements()
这些设备以开始扫描。当从设备检测到广告数据包时,advertisementreceived
将在其对应的设备上触发事件。此时,蓝牙设备在范围内并可以连接。
请尝试使用此新功能,并使用 Blink>Bluetooth 组件在https://crbug.com上提交任何错误。
推荐阅读
- javascript - 本地 HTML 日期时间 - 使用箭头时,最小值和最大值无法正常工作
- java - 计算文本文件中重复行的程序
- angular - Angular6 error -Cannot read property 'mapName' of undefined
- javascript - Redirect to another page after radio button selection using framework7
- android - Android 设备植根检查
- wordpress - Wordpress 帖子/页面中的联系表 7 字段
- javascript - 如何限制上传多个扩展名的文件
- mysql - 如果条件不满足,则从其他表中获取值
- android - 单击更改列表视图中的项目
- linux - 如何在 automake 文件中检查它是否是 32/64 位操作系统?