Когда я использую scanBleDevices из RxAndroidlBle (на Android 6+), я вижу свои устройства BLE. Затем я использую другое приложение, которое сканирует BLE. Наконец, когда я возвращаюсь в свое приложение RxAndroidlBle и запускаю новое «scanBleDevices», оно не может найти эти устройства BLE (другие приложения или системы все еще могут их видеть).
Более того, если я отключу локализацию (и / или Bluetooth) вручную и снова включу локализацию, мои устройства 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
}
);
}
Вы знаете причину? И как это решить?
Спасибо,
Нет, я сканирую только с помощью обоих приложений.
Вы подключаетесь к устройству через другое приложение?