1

为连接或操作指定超时的推荐方法是什么?目前我使用:

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

但我的印象是,偶尔随后自动关闭和断开 gatt 并不总是正确完成,因为之后我有时无法重新连接到同一设备。

会像

.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 回答