linux下无法获取RSSI且频繁断线

问题描述 投票:0回答:1

我在 Linux 中观察到一些问题,而同一段代码在 Windows 上运行良好:

获取 RSSI 的代码:

  1. 设备频繁断线。
  2. 获取 RSSI 失败。
  3. 重新连接时无法扫描设备。

BLE 似乎无法观看广告,因为没有事件到达。然而,相同的代码适用于 Windows。

此外,当我尝试使用 navigator.bluetooth.requestDevice() 重新连接时,它显示没有兼容的设备,并且重新扫描按钮不起作用。 点击此处查看图片

如有任何帮助,我们将不胜感激!

获取 RSSI 的代码:

let rssi;

function watchAdv() {
    abortController = new AbortController();
    device.addEventListener('advertisementreceived', handleAdvEvent);
    console.log("watching adv");

    device.watchAdvertisements({ signal: abortController.signal });

    const id = setTimeout(() => {
        rssi = 'Failed';
    }, 3000);

    return id;
}

function handleAdvEvent(event) {
    abortController.abort();
    rssi = event.rssi + " (before connection)";
    console.log("rssi:", rssi);
}
javascript web-bluetooth
1个回答
0
投票

Linux 上的 Web 蓝牙的一个已知问题是 WatchAdvertisement 无法正常工作,因为没有适当的底层系统 API 来支持此功能。此问题正在由 https://g-issues.chromium.org/issues/40233338 进行跟踪。

© www.soinside.com 2019 - 2024. All rights reserved.