【问题标题】:Web Bluetooth: how to check if bluetooth is enabled with javascript?网络蓝牙:如何检查是否使用 javascript 启用了蓝牙?
【发布时间】:2020-09-05 10:59:16
【问题描述】:

是否可以通过javascript检查蓝牙是否启用,是否有任何事件可以检测到它的变化?

Web蓝牙API中有getAvailability()方法:

getAvailability() 返回一个promise,如果用户代理在具有蓝牙无线电的系统上运行,则返回true,否则返回false。蓝牙无线电的通电状态不会影响可用性,因为应用程序可以提示用户使用 requestDevice() 打开无线电。 availabilitychanged 事件可用于检测蓝牙无线电可用性的变化。

此 API 有助于开发人员了解他们是否应该向用户显示 Web 蓝牙的 UI。

Web Bluetooth / Availability Sample

但如上所述,蓝牙无线电的供电状态不会影响可用性,它不会对从计算机设置中关闭蓝牙做出反应。

【问题讨论】:

    标签: javascript bluetooth web-bluetooth


    【解决方案1】:

    正确,getAvailability() 只会告诉您系统是否有蓝牙无线电。

    没有特定的 API 可以告诉网站收音机是打开还是关闭。如果调用 requestDevice() 并且用户关闭了无线电,他们将在 Chrome 的设备选择器中收到通知。他们可以选择取消提示或打开蓝牙设置以启用它。无论哪种方式,requestDevice() 都会拒绝并出现错误,直到用户在设置中启用蓝牙。

    【讨论】:

    • 添加。这也是一个隐私问题。应用程序仅限于他们需要知道的内容 == 用户是否授予对设备的访问权限。如果不是,应用程序的业务不一定知道为什么不这样做。用户代理(浏览器)应负责帮助用户在需要时进行故障排除(例如提示开启 BT)。如果这不令人满意,了解您的用例的更多详细信息可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多