另一个应用扫描后,RxAndroidBle,scanBleDevices,Android 6+,设备不可见

时间:2018-07-12 07:15:24

标签: android bluetooth-lowenergy rxandroidble

当我使用RxAndroidlBle(在Android 6+上)的“ scanBleDevices”时,可以看到我的BLE设备。然后,我使用另一个扫描BLE的应用程序。 最后,当我回到我的RxAndroidlBle应用程序并启动一个新的“ scanBleDevices”时,它找不到这些BLE设备(其他应用程序或系统仍然可以看到它们)。

此外,如果我手动禁用本地化(和/或蓝牙),然后重新启用本地化,则BLE设备会重新出现在我的应用程序中。

您知道原因吗?

版本: 实现“ com.polidea.rxandroidble:rxandroidble:1.4.1”

我也使用TedPermission:

new TedPermission(getContext())
                                .setPermissionListener(((ScanActivity)getActivity()))
                                .setPermissions(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION)
                                .setDeniedMessage(R.string.permissions_refused)
                                .check();

然后

    @Override
    public void onPermissionGranted()
    {
rxBleClient.scanBleDevices(
                        new ScanSettings.Builder()
                                .setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
                                .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
                                .build(),
                        ScanFilter.empty())
                        .doOnUnsubscribe(this::removeScanningSubscription)
                        .doOnError(throwable -> Log.e(TAG, throwable.toString()))
                        .subscribe(
                                scanResult -> {
                                    if (scanResult.getBleDevice().getName() != null)
                                    {
                                        EventBus.getDefault().post(new EventBLE(scanResult.getBleDevice()));
                                    }
                                },
                                throwable -> {
// some error process
                                }
                        );
   }

您知道原因吗?以及如何解决呢?

谢谢

0 个答案:

没有答案