我正在使用 RxAndroidBle 库 v 1.4.1。我想在连接到设备时每隔几秒钟扫描一次。问题是当我停止扫描时(我不想一直扫描,只是每隔几秒钟)它会关闭与设备的连接。
rxBleClient.scanBleDevices(
newScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
.build(),
new ScanFilter.Builder()
.setServiceUuid("xyz")
.build()
)
.buffer(SCANNING_WINDOW_SECONDS, TimeUnit.SECONDS)
.first()
.repeatWhen(observable -> observable.delay(INTERVAL, TimeUnit.SECONDS));
我知道这种行为已记录在案“ scanBleDevices() - 这个 Observable 在取消订阅时关闭/清理内部资源(即完成扫描、关闭连接、禁用通知) ”
有什么解决方法吗?还是我必须在连接时浪费电池并一直扫描或根本不扫描?
编辑该问题仅发生在某些设备上-例如。华硕 Zenfone T100J。
scanDevices()
.doOnNext(device -> {
if(disconnected && device!=null){connect();}
})