После установления соединения с моим предпочитаемым устройством 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
Отладка:
Ожидаемый результат:
Строка в следующем формате: *От 1024 * до datc000000
Правильно ли я преобразовываю ByteArray в hex?Возможно, я обращаюсь к сервису с неправильными характеристиками или что-то еще не так с передачей данных.Есть идеи?