RxAndroidBle扫描超时

时间:2018-04-12 20:19:41

标签: rx-java2 rxandroidble

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

1 个答案:

答案 0 :(得分:1)

如果您想在特定时间内没有发出错误时发出错误(TimeoutException),那么请在.timeout(int, TimeUnit)之后加RxBleClient.scanBleDevices()

如果您只是想完成扫描而没有任何错误,那么您将.take(int, TimeUnit)放在与上面相同的位置。