RxAndroidBLE setupNotification错过了第一个通知

时间:2019-05-23 02:06:19

标签: android bluetooth-lowenergy rxandroidble

我连接的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,以便它可以立即处理收到的数据?

1 个答案:

答案 0 :(得分:1)

是的,有一个用于更改通知设置行为的API:RxBleConnection.setupNotification(BluetoothGattCharacteristic/UUID, NotificationSetupMode)

在您的情况下,只需使用:

rxBleConnection.setupNotification(characteristic, NotificationSetupMode.QUICK_SETUP);