网络蓝牙,获取配对设备列表

Web bluetooth, get paired devices list

我在我的项目中使用网络蓝牙,我使用此代码连接到设备

async function requestDevice() {
    bluetoothDevice = await navigator.bluetooth.requestDevice({
        // filters: [ { name: 'Device test' } ],
        acceptAllDevices: true,
        optionalServices: [
            'battery_service',
            '03b80e5a-ede8-4b33-a751-6ce34ec4c700'
        ]
    });

    bluetoothDevice.addEventListener('gattserverdisconnected', onDisconnected);       
} 

始终连接,我调用对话框并在那里 select 我需要的设备。我能否以编程方式获取已连接设备的列表?为了不每次都调用对话框?

目前无法获取 Chrome 中的蓝牙设备列表。但是,我正在为蓝牙实现 getDevices() 方法。请关注Chrome Platform Status

中的状态

6/22/20 编辑:

我最近实施了一个新的权限后端以及两个 API,它们将允许使用以前允许的蓝牙设备。

新权限后端在 chrome://flags/#enable-web-bluetooth-new-permissions-backend 后面实现。新后端将保留通过 requestDevice() 授予的设备权限,直到在“站点设置”或“页面信息”对话框中重置权限。

getDevices() and watchAdvertisements() are implemented behind the chrome://flags/#enable-experimental-web-platform-features flag for Chrome 85.0.4165.0 or greater. The recommended use of these APIs is to use getDevices() to retrieve an array of permitted BluetoothDevices and then calling watchAdvertisements() on these devices to start a scan. When advertisement packets are detected from the devices, the advertisementreceived 事件将在它对应的设备上触发。此时,蓝牙设备在范围内,可以连接。

请尝试这个新功能,并使用 Blink>Bluetooth 组件在 https://crbug.com 提交任何错误。