首页 > 解决方案 > RxAndroidBLE:映射器返回了一个空的 SingleSource

问题描述

我使用以下代码侦听来自我的蓝牙 LE 设备的未经请求的消息。例如,我期待一个带有文本“datc00099”的字节数组。相反,映射器返回一个空 SingleSource。这里可能出了什么问题?

val charUUID = scanResult.scanRecord.serviceUuids?.get(0)?.uuid

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

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

错误:

D/ERROR:: java.lang.NullPointerException: The mapper returned a null SingleSource

调试:

在此处输入图像描述

标签: androidbluetooth-lowenergyrx-java2rxandroidblerxbluetooth

解决方案


推荐阅读