如何在RxJava中从SingleFlatMap检索整数?

时间:2019-03-26 23:29:38

标签: android kotlin bluetooth-lowenergy rx-java2 reactive

我正在尝试从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和称为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。

我应该看到的值示例是datc00099,它表示计数为99。

1 个答案:

答案 0 :(得分:1)

您应该订阅pod repo update rm -rf Pods pod install 。按照RxAndroidBle提供的示例,这种情况可能适用于您的情况:

Single