指定操作超时的首选方式
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
此致
为连接或操作指定超时的推荐方法是什么?目前我使用:
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
此致