我连接的ble固件在通知订阅后立即发送当前值。
例如,订阅电池电量通知特性将在订阅时返回50%,并在发生更改时继续进行通知。
这适用于示例ble应用程序,并且在订阅后会接收,处理和显示该值,但不适用于rxandroidble。
我正在使用以下设置通知。它适用于后续通知,但似乎仍未设置初始通知,似乎没有收到初始通知:
Disposable notifyDisposable = connectionObservable
.flatMap(rxBleConnection -> rxBleConnection.setupNotification(characteristic))
.doOnNext(notificationObservable -> L.d(TAG, "notification setup for: " + characteristic.toString()))
.flatMap(notificationObservable -> notificationObservable)
.subscribe(
data -> onNotificationReceived(data, notifyEvent),
this::onNotificationSetupFailure
);
是否有一种方法可以在写入要订阅的标志之前准备好setupNotification,以便它可以立即处理收到的数据?
答案 0 :(得分:1)
是的,有一个用于更改通知设置行为的API:RxBleConnection.setupNotification(BluetoothGattCharacteristic/UUID, NotificationSetupMode)
。
在您的情况下,只需使用:
rxBleConnection.setupNotification(characteristic, NotificationSetupMode.QUICK_SETUP);