1

Is there some approach to check if the RxBleConnection instance is active or was disconnected? Or maybe some notification to track the moment of disconnection?

4

2 に答える 2

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

よろしくお願いします

于 2016-10-03T10:26:51.703 に答える
0

接続が成功したときに onConnectionReceived メソッドで受け取る RxBleConnection インスタンス。切断された場合、RxBleConnection は読み取り/書き込みなどの操作の実行に失敗し、コールバックでキャッチして接続が失敗したと判断できます。

ただし、最善の方法は、接続がアクティブでないことを確認するために、接続失敗のコールバック自体をチェックすることです。

ありがとうスワヤム

于 2016-09-16T18:06:34.573 に答える