我正在使用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关闭/清理内部资源(即完成扫描,关闭连接,禁用通知)"
有没有解决方法?或者我是否必须在连接时浪费电池并一直扫描或根本不进行扫描?
EDIT 问题仅发生在某些设备上 - 例如。华硕Zenfone T100J。
scanDevices()
.doOnNext(device -> {
if(disconnected && device!=null){connect();}
})