2016-09-16 4 views

答えて

0

RxBleConnectionインスタンスは、接続が成功したとき、BLEが切断取得する場合、RxBleConnectionが接続を決定するためにコールバックでキャッチすることができ、読み取り/書き込みのような任意の操作を実行に失敗しますonConnectionReceived

しかし最善のアプローチを失敗しましたそれは、接続を決定するために、自己は、私はあなたが非反応方法でRxBleConnectionオープンを維持しようとしていることを前提としてい

おかげ Swayam

+0

どのようなコールバックですか?私は図書館でそのようなことを思い出しません。 –

+0

以下のような接続を作成しようとすると、次のような接続を作成しようとします: - connectionSubscription = bleDevice.establishConnection(this、autoConnectToggleSwitch.isChecked()) .subscribe(this :: onConnectionReceived、this :: onConnectionFailure);接続が失敗した場合は、アクティブな接続がないと判断できるonConnectionFailureメソッドでコールバックを受け取ります –

0

アクティブでないコールバックを失敗し、接続を確認することになります。このような状況では、接続状態を自分で追跡する必要があります。あなたはヘルパークラスでそれを行うことができます:

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から退会するあなたが必要になります。

最高のお礼

関連する問題