2017-08-17 9 views
0

私はWeb-bluetooth APIの初心者です。私はAndroidのBluetoothデバイスのIDまたはMACアドレスを取得したいと考えています... あるいは、APIを使用して各デバイスを識別する何らかの方法です。 は、実際に私はあなたが2つの類似の装置を離れて伝えるためにBluetoothDevice.id attributeを使用することができ、このAndroidのBluetoothデバイスのIDまたはMACアドレスを取得するにはどうすればよいですか?

// 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); 
         }); 

答えて

1

を持っています。デバイスが有益に名前を付けられている場合は、nameを使用することもできます。 「Nexus 6p(Bob's)」ここには、Web Bluetooth Device Info Sampleがあります。

このような制限があります。 Web Bluetoothは、Bluetooth仕様からの変更を最小限に抑えながら、低レベルでBluetoothの概念を公開しようとしますが、Webに関連するセキュリティとプライバシーの保護を提供するために何らかの措置をとっています。 blocklistは含まれています

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

をシリアル番号を読み取るためにあなたのコードはより多くの情報のためにブロックリストにあなたを演出コンソールメッセージを生成する必要があります。

これらのIDがブロックされている理由については、Bluetooth device identifiersに関連する仕様のセキュリティとプライバシーの考慮事項を参照してください。

+0

あなたの答えをありがとう、私はプロジェクトのMACアドレスを取得する必要があります。どのようにそれを知っていますか?そのようなもの [chrome:// bluetooth-internals /#devices] –

+0

Web Bluetoothは意図的にMACをブロックします。理由については、この回答にリンクされている仕様のセキュリティとプライバシーの考慮事項を参照してください。 –

+0

iOSがMACアドレスの読み取りを妨げるように、MACアドレスを公開するカスタムBLE特性を含むBLEデバイスをいくつか見てきました。 例:https://github.com/beaufortfrancois/sandbox/blob/0eeeafd507dc93d2b0f9a2f2fb2a33eedf41589a/web-bluetooth/sense-peanut/sense-peanut.js#L64-L78 –

関連する問題