RxAndroidBLE-未解决的引用:`$ rxBleDevice`-读取返回空ByteArray的特征:

时间:2019-03-31 00:47:45

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

与首选的蓝牙设备建立连接后,我会监听并等待一些不请自来的数据。定期在随机的时间间隔从设备发射数据。

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

预期结果:

以下格式的字符串:datc999999datc000000

我可以将ByteArray正确转换为十六进制吗?也许我访问了错误的特征服务,或者数据传输存在其他问题。有什么想法吗?

0 个答案:

没有答案