Получение gps координат при заблокированном устройстве

Реализовал получение координат с помощью FusedLocationProviderClient. И он работает на большинстве устройств. Но на китайских смартфонах после некоторого времени простоя координаты выводятся одни и те же. В манифесте разрешил Background location, отключил оптимизацию батареи. Но ничего не помогает. Получаю координаты так:

FusedLocationProviderClient fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(context);
    if(locationRequest==null)
    {
        locationRequest = LocationRequest.create();
        locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        locationRequest.setInterval(30 * 1000);
        locationRequest.setFastestInterval(5 * 1000);
    }
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
    {
        LocationCallback locationCallback = new LocationCallback() {
            @Override
            public void onLocationResult(@NonNull LocationResult locationResult) {
                super.onLocationResult(locationResult);
                for (Location location : locationResult.getLocations()) {
                    if (location != null) {
                        currentLat = location.getLatitude();
                        currentLon = location.getLongitude();
                        Log.d("lat, lang = ", currentLat + " : " + currentLon);
                        //fusedLocationProviderClient.removeLocationUpdates(locationCallback);
                    }
                }
            }
        };
        fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper());
    }

Не могу понять, что нужно сделать, чтобы координаты обновлялись...


Ответы (0 шт):