【问题标题】:RxAndroidBLE setupNotification misses first notificationRxAndroidBLE setupNotification 错过第一个通知
【发布时间】:2019-05-23 02:06:19
【问题描述】:

我连接的 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 在它写入订阅的标志之前准备好,以便它可以立即处理接收到的数据?

【问题讨论】:

    标签: android bluetooth-lowenergy rxandroidble


    【解决方案1】:

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

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

    rxBleConnection.setupNotification(characteristic, NotificationSetupMode.QUICK_SETUP);
    

    【讨论】:

    • 完美。谢谢你。我以前尝试过 compat,如果我能正确阅读 javadocs 就好了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多