【发布时间】:2022-03-01 18:31:51
【问题描述】:
我有一个低功耗蓝牙 (BLE) 设备,并希望使用 Web 蓝牙 API 从网页访问它。
这在 Windows 上的 Chrome 中运行良好(至少在当前版本的 Chrome 和 Windows 上),甚至在 iPadOS 上的 WebBLE 应用程序中(因为 Safari 不支持 WebBluetooth)。
但我有多个运行当前版本的 Android (12) 和 Chrome (97) 的 Android 设备,在浏览器设备选择器中,设备不会显示。其他一些未知设备出现,但我的设备没有。
这台设备没有显示的原因可能是什么?我如何收集有关这种情况的更多信息? 它发生在本机浏览器对话框中,因此我通常的调试步骤不起作用。
更新:
我已经检查过chrome://bluetooth-internals,结果是一样的。该设备显示在 Chrome/Windows 上,但不显示在 Chrome/Android 上。
现在我还使用了chrome://device-log,它只在 Windows 和 Android 上显示
蓝牙内部页面启动蓝牙发现会话
nRF Connect for Mobile 会立即显示设备,并且还会显示在 Android 蓝牙设置中。只有 Chrome Web 蓝牙不显示。
更新 2:
adb logcat 在 Chrome 蓝牙发现期间显示以下行:
V/BtGatt.GattService(19403):跳过匹配拒绝列表的数据
那是什么? Chrome 是否有自己的蓝牙设备拒绝名单?
更新3: Android 对 BLE 设备有一个拒绝名单,如果应用程序 (Chrome) 具有 ACCESS_FINE_LOCATION 权限,则不应应用该拒绝名单。但三星似乎仍然应用了黑名单,即使 Chrome 拥有所有必要的权限。
【问题讨论】:
标签: android google-chrome bluetooth-lowenergy web-bluetooth