com.polidea.rxandroidble2.exceptions.BleCharacteristicNotFoundException: признак не найден с UUID - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь прочитать поток незапрошенных данных с моего устройства Bluetooth.Данные должны отображаться в виде байтового массива.К сожалению, UUID, который я поставляю, кажется неправильным.Что может быть не так?

val stringDeviceUUID = rxBleDevice.bluetoothDevice.uuids[0].toString()
val charUUID = UUID.fromString(stringDeviceUUID)

println("$stringDeviceUUID = $charUUID?")

/* If device if it is not already connected... */
if (rxBleDevice.connectionState != RxBleConnection.RxBleConnectionState.CONNECTED) {

 /* Establish connection to device */
 device !!.establishConnection(false) ?
  .doOnNext {
   _ -> Log.d("Device: ", "Connection Established")
  } ?
  .flatMapSingle {
   rxBleConnection -> rxBleConnection.readCharacteristic(charUUID)
  } ? .subscribe({
   count ->
   // count should be in bytes
   println("OUTPUT: $count")

  }, {
   throwable ->
   Log.d("Device: ", "$throwable")
  })


}

Я получаю следующую ошибку:

D/Device:: com.polidea.rxandroidble2.exceptions.BleCharacteristicNotFoundException: Characteristic not found with UUID 00001101-0000-1000-8000-00805f9b34fb

Что не так с этим UUID?Это именно тот UUID, который я извлекаю из устройства, так почему он не позволяет мне общаться?

1 Ответ

0 голосов
/ 24 апреля 2019

Это не видно из вашего фрагмента кода, но являются ли rxBleDevice и device одним и тем же экземпляром RxAndroidBle?Если нет, возможно, замените device !!.establishConnection(false) на rxBleDevice.establishConnection(false)

...