我需要帮助。当我使用rxandroidble时,如何设置扫描超时,例如10秒。
scanDisposable = rxBleClient.scanBleDevices(
new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
.build(),
new ScanFilter.Builder()
.setDeviceAddress("B4:99:4C:34:DC:8B")
// add custom filters if needed
.build()
)
.observeOn(AndroidSchedulers.mainThread())
.doFinally(this::dispose)
.subscribe(
resultsAdapter::addScanResult,
this::onScanFailure
);
答案 0 :(得分:1)
如果您想在特定时间内没有发出错误时发出错误(TimeoutException
),那么请在.timeout(int, TimeUnit)
之后加RxBleClient.scanBleDevices()
。
如果您只是想完成扫描而没有任何错误,那么您将.take(int, TimeUnit)
放在与上面相同的位置。