我正在尝试从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。
答案 0 :(得分:1)
您应该订阅pod repo update
rm -rf Pods
pod install
。按照RxAndroidBle提供的示例,这种情况可能适用于您的情况:
Single