RxAndroidBle-使用CALLBACK_TYPE_ALL_MATCHES或CALLBACK_TYPE_FIRST_MATCH时的结果不同

时间:2018-07-11 11:45:00

标签: android bluetooth-lowenergy rxandroidble

使用CALLBACK_TYPE_ALL_MATCHES参数时找不到我的设备,但是当我用CALLBACK_TYPE_FIRST_MATCH更改此参数时,结果是预期的。 不幸的是,CALLBACK_TYPE_FIRST_MATCH不能在多部电话上使用。

scanDisposable = rxBleClient.scanBleDevices(
                ScanSettings.Builder()
                        .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
                        .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
                        .build(),
                ScanFilter.Builder()
                        .setServiceUuid(ParcelUuid(UUID_SERVICE))
                        .build()
                )
                ?.observeOn(AndroidSchedulers.mainThread())
                ?.doOnDispose { }
                ?.subscribe(Consumer { scanResult ->
                    Log.d("Scan Result", scanResult.bleDevice.name + " - " + scanResult.bleDevice.macAddress)
                },
                    Consumer<Throwable> { onScanFailure(it) })

Android Pixel可以通过CALLBACK_TYPE_FIRST_MATCH查找设备,但是不能通过CALLBACK_TYPE_ALL_MATCHES查找设备。

Galaxy S5 Neo可以使用CALLBACK_TYPE_ALL_MATCHES查找设备,并且CALLBACK_TYPE_FIRST_MATCH发送BleScanException.SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES

0 个答案:

没有答案