【问题标题】:How can I get the id or MAC address of my android bluetooth device?如何获取我的安卓蓝牙设备的 ID 或 MAC 地址?
【发布时间】:2017-08-18 06:07:35
【问题描述】:

我是 web-bluetooth api 的初学者,我想获取我的 android 蓝牙设备的一些 ID 或 MAC 地址... 或者通过 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);
                        });

【问题讨论】:

    标签: html bluetooth web-bluetooth


    【解决方案1】:

    您可以使用BluetoothDevice.id attribute 区分两个相似的设备。如果设备的名称很有帮助,您也可以使用name,例如“Nexus 6p(鲍勃)”。这是一个网络蓝牙Device Info Sample 正在这样做。

    您可能会发现这些限制。网络蓝牙试图在低级别公开蓝牙概念,对蓝牙规范进行最小的更改,但确实采取了一些措施来提供与网络相关的安全和隐私保护。 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 被阻止的原因。

    【讨论】:

    • 感谢您的回答,我需要获取项目的 MAC 地址。你知道怎么做吗?类似的东西 [chrome://bluetooth-internals/#devices]
    • 网络蓝牙有意阻止 MAC。请参阅此答案中链接的规范中的安全和隐私注意事项以了解原因。
    • 请注意,我看到一些包含自定义 BLE 特性的 BLE 设备会暴露 MAC 地址,因为 iOS 也会阻止读取 MAC 地址。例如:github.com/beaufortfrancois/sandbox/blob/…
    • 谢谢,我尝试过这种方法(getMACaddress),但在控制台上显示此错误无法读取未定义的属性'writeValue'...我该如何解决?
    • 我分享的代码是特定于 BLE 设备的。你有哪一个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2022-06-13
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    相关资源
    最近更新 更多