是否可以检查javascript是否启用了蓝牙并且是否有任何事件可以检测到其更改?
Web蓝牙API中有getAvailability()
方法:
getAvailability()返回一个诺言,如果用户代理运行在具有蓝牙无线电的系统上,则该诺言以true解析,否则以false解析。蓝牙无线电的电源状态不会影响可用性,因为应用程序可以提示用户使用requestDevice()打开无线电。 AvailabilityChanged事件可用于检测蓝牙无线电的可用性变化。
该API对于开发人员了解是否应该向用户显示Web蓝牙UI很有用。
Web Bluetooth / Availability Sample
但是,如上所述,蓝牙无线电的供电状态不会影响可用性,并且不会因计算机设置关闭而对蓝牙产生反应。
答案 0 :(得分:2)
正确,getAvailability()
仅告诉您系统是否具有蓝牙无线电。
没有特定的API可以告诉站点无线电是否打开或关闭。如果调用了requestDevice()
,并且用户关闭了收音机,则会在Chrome的设备选择器中将其通知给用户。他们可以选择取消提示,也可以打开蓝牙设置以启用提示。无论哪种方式,requestDevice()
都会拒绝并显示错误,直到用户在设置中启用了蓝牙。