Я пытаюсь получить значение с устройства Bluetooth.
if (rxBleDevice.connectionState != RxBleConnection.RxBleConnectionState.CONNECTED) {
rxBleDevice!!.establishConnection(false) ? .subscribe({
rxBleConnection ->
Log.d("Device: ", "Connection Established")
val stringDeviceUUID = rxBleDevice.bluetoothDevice.uuids[0].toString()
val charUUID = UUID.nameUUIDFromBytes(stringDeviceUUID.toByteArray())
val count = rxBleConnection.readCharacteristic(charUUID)
println("OUTPUT: ${count}")
}, {
throwable -> Log.d("Device: ", "$throwable")
})
}
Я использую следующие зависимости, в основном RxJava и реактивную библиотеку Bluetooth RxAndroidBLE:
implementation 'io.reactivex.rxjava2:rxkotlin:2.1.0'
implementation "com.polidea.rxandroidble2:rxandroidble:1.8.1"
implementation "io.reactivex.rxjava2:rxjava:2.2.7"
Мой вывод:
I/System.out: OUTPUT: io.reactivex.internal.operators.single.SingleFlatMap@bf9162d
Я не знаю, как обрабатывать этот объект. Я считаю, что должен получить простой ByteArray от устройства Bluetooth.
Примером значения, которое я должен увидеть, является datc00099
, указывающее счет 99.