如何检查RxBleConnection的状态

时间:2016-09-16 14:18:15

标签: rxandroidble

是否有一些方法可以检查RxBleConnection实例是处于活动状态还是已断开连接?或者也许是一些跟踪断开时刻的通知?

2 个答案:

答案 0 :(得分:0)

连接成功时在方法onConnectionReceived中收到的RxBleConnection实例,如果断开连接,RxBleConnection将无法执行任何操作,如读/写,可以在回调中捕获以确定连接失败

然而,最佳方法是检查连接失败回调,以确定连接是否处于活动状态

由于 Swayam

答案 1 :(得分:0)

我认为您试图以非反应方式保持RxBleConnection开放。在这种情况下,您需要自己跟踪连接状态。您可以使用帮助程序类来执行此操作:

static class ConnectionWithState {
    RxBleConnection connection;
    boolean isActive;
}

建立连接时,请执行:

final ConnectionWithState connectionWithState = new ConnectionWithState();
final Subscription connectionSubscription = bleDevice
        .establishConnection(this, false)
        .subscribe(
                connection -> {
                    connectionWithState.connection = connection;
                    connectionWithState.isActive = true;
                },
                throwable -> connectionWithState.isActive = false,
                () -> connectionWithState.isActive = false
        );

断开连接需要您取消订阅connectionSubscription

最好的问候