Javascript 获取附近的蓝牙设备 Mac 地址

Javascript get nearby Bluetooth devices Mac Address

我需要我的 web 项目来获取附近的蓝牙设备 Mac 地址。 我使用此代码:

navigator.bluetooth.requestDevice(acceptAllDevices)
.then(device => {
console.log(device)
console.log('> Name:             ' + device.name);
console.log('> Id:               ' + device.id);
console.log('> Connected:        ' + device.gatt.connected);
})
.catch(error => {
console.log('Argh! ' + error);
});

当我运行这个函数得到这个标签时:picture

对于不受支持的设备,会显示蓝牙 Mac 地址。但它的名称 属性 将为空。

但是,对于已识别的设备,它会打印名称选项。 我可以从名称选项中过滤 Mac 地址吗?

可能还有其他查询Mac地址的方式?

网络蓝牙的可用过滤器是“服务”、“名称”、“名称前缀”和“制造商数据”,如 https://web.dev/bluetooth/#request 所述。

您可以在 https://googlechrome.github.io/samples/web-bluetooth/device-info.html and https://googlechrome.github.io/samples/web-bluetooth/manufacturer-data-filter.html

尝试一些组合

关于MAC地址,取决于蓝牙设备。一些设备为了隐私而广播一个临时地址,一个“静态”地址,一个用于“device.name”的名称,当有一个地址而不是 MAC 地址时。

您要访问哪个设备?查看 about:bluetooth-internals#devices 并尝试找出使其独一无二的一件事。