为连接或操作指定超时的推荐方法是什么?目前我使用:
ConnectionObservable = mDevice
.establishConnection(mRxAppCompatActivity, false)
.timeout(DEFAULT_TIMEOUT_IN_MILLIS, TimeUnit.MILLISECONDS)
但我得到的印象是偶尔随后自动关闭和断开gatt并不总能正常完成,因为我有时无法重新连接到同一设备。
会像
.takeUntil(disconnectTrigger)
在更多推荐超时后手动触发disconnectTrigger.onNext()?
答案 0 :(得分:1)
使用.establishConnection()
调用autoConnect = false
函数将在约30秒后自动失败。
断开连接的两个选项同样可以接受。在我看来,特定解决方案的使用取决于用例。
请注意,这些超时不会对已经启动的操作产生太大影响 - 唯一的例外是连接操作可以取消,但此功能最近已合并到master
分支。 (https://github.com/Polidea/RxAndroidBle/commit/604853c4f39c5e8a19e02415c50b547b0befd0e7)尚未处理的操作将从操作队列中删除。
我认为您可能正在遭受断开的断开机制(很难确定没有日志)。此处存在此问题的错误:https://github.com/Polidea/RxAndroidBle/issues/63
最好的问候