0

:今UUID.fromStringメソッドを正しく使用するには?私が書く/これらのBLE特性読みしようとしています

enter image description here

を、私はそれを行うにはthis libraryを使用していますAA01 *

を読みしようとしています。

java.lang.IllegalArgumentException: Invalid UUID: AA01*

は私もthis similar questionからソリューションを試みたが、何も動作:私はこのエラーを取得する

private void connectToSensorTag(RxBleDevice rxBleDevice) { 
    rxBleDevice.establishConnection(getApplicationContext(), false) 
      .doOnError(new Action1<Throwable>() { 
       @Override 
       public void call(Throwable throwable) { 
        int i = 0; 
       } 
      }) 
      .flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(UUID.fromString("AA01*"))) 
      .subscribe(new Subscriber<byte[]>() { 
       @Override 
       public void onCompleted() { 
        int i = 0; 
       } 

       @Override 
       public void onError(Throwable e) { 
        int i = 0; 
       } 

       @Override 
       public void onNext(byte[] bytes) { 
        int i = 0; 
       } 
      }); 

は、ここに私のコードです。同じエラー。

+1

これはUUIDではありません。 UUIDは次のようになります:123e4567-e89b-12d3-a456-426655440000 https://en.wikipedia.org/wiki/Universally_unique_identifierを参照してください。 – smarx

+0

UUIDは128ビットの値であると考えられていますが、これはBluetooth Low Energyドキュメントのようなものでなければなりません。 AA01は長いUUIDの開始点でなければなりません(他の文字はすべて同じかもしれません)。 UUIDは通常、123e4567-e89b-12d3-a456-426655440000 – bpncool

+0

のように見えます。パケットから数バイトを読み取るだけで、UUIDを使用する必要はありません(Objectフィールド用とAmbience用の2つ)。 – chrylis

答えて

4

のUUIDの2種類があります。また UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");

  • 完全修飾(しかし標準によって定義)を有するのUUID:通常、非標準機能のBLEデバイスの特定のベンダーのために割り当てられた長い

    • 完全修飾128ビット同じ接頭辞と接尾辞:UUID.fromString("F000xxxx-0451-4000-B000-000000000000"); ここで、xxxxはSensorTag仕様から得られる4文字を埋める場所です。便宜上、標準のUUIDは通常、4文字の識別子で参照されます。

      話:https://www.youtube.com/watch?v=0aKfUGCxUDM

      デモアプリケーションあなたはSensorTagデバイスを扱っている場合

    また、あなたはMCE^3会議は今年で示されたライブラリのデモアプリケーションをチェックアウトすることができますリポジトリ:https://github.com/dariuszseweryn/2016_MCE_Demo_RxAndroidBLE

    私はあなたを助けてくれることを願っています。

    よろしくお願いいたします。

  • 1

    あなたは完全なUUIDを提供する必要がありますBLE書において

    UUID uid = UUID.fromString("f000aa01-0451-4000-b000-000000000000"); 
    
    1

    より速いjava.util.UUID.fromString()が必要な場合は、代わりにFast-UUID-Parser を使用できます。それはjava.util.UUIDを返し、それはjava.util.UUID.fromString()より4倍速くなります。

    関連する問題