RxAndroidBle 扫描超时

RxAndroidBle Scan Timeout

我需要帮助。当我使用 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
                );

如果你想在特定时间没有发射时发出错误(TimeoutException),那么你在 RxBleClient.scanBleDevices().

之后放一个 .timeout(int, TimeUnit)

如果您想简单地完成扫描而不会出现任何错误,那么您可以将 .take(int, TimeUnit) 放在与上面相同的位置。