如何获取我的 android 蓝牙设备的 ID 或 MAC 地址?

How can I get the id or MAC address of my android bluetooth device?

我是网络蓝牙的初学者 api,我想获得一些 ID 或 MAC 我的 android 蓝牙设备的地址... 或者通过 API 来识别每个设备的某种方式。 其实我有这个

// navigator.bluetooth.requestDevice({filters: [{services: ['battery_service']}]})
navigator.bluetooth.requestDevice({acceptAllDevices: true, optionalServices: ['device_information']})
    .then(device => device.gatt.connect())
        .then(server => {
         // Getting device information
            return server.getPrimaryService('device_information');
        })
            .then(service => {
            // Getting serialNumber
                return service.getCharacteristic('serial_number_string');
            })
                .then(characteristic => {
                    // Reading serialNumber
                    return characteristic.readValue();
                })
                    .then(value => {
                        console.log('Serial Number is ' + value.getUint8(0));
                    })
                        .catch(error => {
                            console.log(error);
                        });

您可以使用 BluetoothDevice.id attribute to tell two similar devices apart. You can also use the name if the devices have been helpfully named, e.g. "Nexus 6p (Bob's)". Here's a Web Bluetooth Device Info Sample 来做到这一点。

您可能会发现这些限制。 Web Bluetooth 试图在低级别公开蓝牙概念,对蓝牙规范进行最小的更改,但确实采取了一些措施来提供与 Web 相关的安全和隐私保护。 blocklist 包含:

# org.bluetooth.characteristic.serial_number_string
# Block access to standardized unique identifiers, for privacy reasons.
00002a25-0000-1000-8000-00805f9b34fb

您读取序列号的代码应该会生成一条控制台消息,将您定向到黑名单以获取更多信息。

请参阅与 Bluetooth device identifiers 相关的规范中的安全和隐私注意事项,了解这些 ID 被阻止的原因。