指定操作超时的首选方式

Preferred way to specify operation timeout

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

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

但我的印象是,有时 gatt 的后续自动关闭和断开连接并不总是正确完成,因为我有时会在之后重新连接到同一设备时遇到问题。

想要什么

.takeUntil(disconnectTrigger)

超时后手动触发 disconnectTrigger.onNext() 更推荐?

.establishConnection() 函数在使用 autoConnect = false 调用时将在大约 30 秒后自动失败。

断开连接的两种选择同样可以接受。在我看来,特定解决方案的使用取决于用例。

请注意,这些超时不会对已经启动的操作产生太大影响——唯一的例外是可以取消连接操作,但此功能最近已合并到 master 分支中。 (https://github.com/Polidea/RxAndroidBle/commit/604853c4f39c5e8a19e02415c50b547b0befd0e7) 尚未处理的操作将从操作队列中删除。

我认为您可能遇到了断开连接机制的问题(没有日志很难确定)。此处已存在此问题的错误:https://github.com/Polidea/RxAndroidBle/issues/63

此致