0

ここで定義されているように、デフォルト アドレスによってアドレス指定される複数の特性を持つ BLE デバイスがあります。

メーカー名文字列、ハードウェア リビジョン文字列、シリアル番号文字列など。

UUID クラスを使用して、RxAndroidBle がこれらの特性を受け入れて読み取る UUID を構築するために、いくつかの異なる方法を試みました。

私が最もうまくいくのはこれでした:

UUID GATT_DSR1_MANUFACTURER_NAME = new UUID(0L, 0x2A29L);

しかし、私は onError コールバックを返すだけです。

RxBleConnection.readCharacteristic は、UUID または UUID で作成された BluetoothGattCharacteristic のみを受け入れます...

4

1 に答える 1

1

UUID の作成 ( UUID.fromString メソッドを正しく使用するには?からコピー)

BLE 仕様には、2 種類の UUID があります。

  • 通常、非標準機能のために BLE デバイスの特定のベンダーに割り当てられる、完全に修飾された 128 ビットの長さ: UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
  • また、同じ接頭辞と接尾辞を持つ完全修飾された (ただし標準で定義された) UUID:UUID.fromString("F000xxxx-0451-4000-B000-000000000000"); UUID.fromString("0000xxxx-0000-1000-8000-00805f9b34fb")ここで、xxxx は、センサータグ Bluetooth コア仕様。便宜上、標準の UUID は通常、4 文字の識別子で参照されます。

あなたはxxxx として文字列を0x2A29L表します。"2A29"

BluetoothGattCharacteristic の取得

Android では、 で動作する を作成する可能性はありませBluetoothGattCharacteristicUUID。ただし、呼び出して結果から取得することは引き続き可能RxBleConnection.discoverServices()です。

于 2017-05-08T20:35:31.647 に答える