RxAndroidBLE - неразрешенная ссылка: `$ rxBleDevice` - чтение характеристики, возвращающей пустой ByteArray: - PullRequest
0 голосов
/ 31 марта 2019

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

val charUUID = UUID.fromString("49535343-1e4d-4bd9-ba61-23c647249616")

scanResult.bleDevice!!.establishConnection(false) ?
 .doOnNext {
  _ ->
   Log.d("Device: ", "Retrieving Shot Count")
 } ?
 .flatMapSingle {
  rxBleConnection ->
   charUUID ? .let {
    rxBleConnection.readCharacteristic(charUUID)
   }
 } ? .subscribe({
  count ->

  println("SUCCESS: ${count.toHexString()}")

  // Update UI asynchronously with new count

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

 fun ByteArray.toHexString() : String {
   return this.joinToString("") {
       java.lang.String.format("%02x", it)
   }
 }

Необработанный вывод:

I/System.out: SUCCESS: 0000000000

Отладка:

enter image description here

Ожидаемый результат:

Строка в следующем формате: *От 1024 * до datc000000

Правильно ли я преобразовываю ByteArray в hex?Возможно, я обращаюсь к сервису с неправильными характеристиками или что-то еще не так с передачей данных.Есть идеи?

...