1

接続または操作のタイムアウトを指定する推奨される方法は何ですか? 現在私は使用しています:

ConnectionObservable = mDevice
                .establishConnection(mRxAppCompatActivity, false)
                .timeout(DEFAULT_TIMEOUT_IN_MILLIS, TimeUnit.MILLISECONDS)

しかし、その後同じデバイスに再接続するのに苦労することがあり、その後のガットの自動閉鎖と切断が常に適切に行われない場合があるという印象を受けます。

のようなものでしょうか

.takeUntil(disconnectTrigger)

タイムアウト後に disconnectTrigger.onNext() を手動でトリガーすることをお勧めしますか?

4

1 に答える 1

1

で呼び出された.establishConnection()関数はautoConnect = false、約 30 秒後に自動的に失敗します。

切断するための両方のオプションは、同等に受け入れられます。私の意見では、特定のソリューションの使用法はユースケースによって異なります。

これらのタイムアウトは、既に開始されている操作にはあまり影響しないことに注意してください。唯一の例外は、接続操作をキャンセルできることですが、この機能はmaster最近ブランチにマージされました。( https://github.com/Polidea/RxAndroidBle/commit/604853c4f39c5e8a19e02415c50b547b0befd0e7 ) まだ処理されていない操作は操作キューから削除されます。

切断メカニズムが壊れている可能性があると思います (ログがないため、確認するのは困難です)。この問題にはすでにバグがあります: https://github.com/Polidea/RxAndroidBle/issues/63

よろしくお願いします

于 2016-09-30T14:02:01.740 に答える