gpt4 book ai didi

android - RxAndroidBle:设置通知,写入特性并等待通知继续

转载 作者:行者123 更新时间:2023-12-04 14:22:04 25 4
gpt4 key购买 nike

我正在使用 Polidea's RxAndroidBle library与我的 Android 应用程序中的设备通信。

我是响应式编程的新手,所以我无法弄清楚如何执行以下操作:

  1. 在一个特征(特征 A)中设置通知。
  2. 完成通知设置后,写入另一个特征(特征 B)。这将触发来自特性 A 的通知。
  3. 写操作完成后,等待特征A中的Notification到来。
  4. 在应用程序的不同部分多次重复相同的步骤(1 到 3)。

我看过this related answer ,但它是使用第一个版本的库完成的,我不知道如何使用新版本来完成。

谢谢。

最佳答案

最后我自己弄明白了。这是一个在特性中设置指示或通知的方法,然后将一些字节写入另一个特性并返回 Observable<String>。发出 byte[]解析为十六进制 String已在通知/指示中阅读。

希望它能帮助其他人在 RxJava2 中寻找这个解决方案。

private Observable<String> writeAndReadOnNotification(UUID writeTo, UUID readOn,
String hexString,
boolean isIndication,
RxBleConnection rxBleConnection) {
Observable<Observable<byte[]>> notifObservable =
isIndication ?
rxBleConnection.setupIndication(readOn) :
rxBleConnection.setupNotification(readOn);
return notifObservable.flatMap(
(notificationObservable) -> Observable.combineLatest(
rxBleConnection.writeCharacteristic(writeTo, hexToBytes(hexString)).toObservable(),
notificationObservable.take(1),
(writtenBytes, responseBytes) -> bytesToHex(responseBytes)
)
).take(1)
.observeOn(AndroidSchedulers.mainThread())
.doOnError(this::throwException);
}

关于android - RxAndroidBle:设置通知,写入特性并等待通知继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com