Android: местоположение на Google Картах с низким уровнем заряда батареи

Мое приложение в настоящее время использует КартыGoogle Play Services

speficying:

mMap.setMyLocationEnabled(true);

Я понимаю, каждый раз, когда я отображаю карту в моем приложении:

местоположение обозначено на карте синей точкойзначок местоположения отображается в верхней панелиесли я захожу в меню «Настройки» / «Расположение телефона», мое приложение отображается как «Заряд аккумулятора»

Тем не менее, я вижу, что есть приложения, которые используют Карты и по-прежнему отображают местоположение синей точкой, но значок местоположения не отображается в верхней панели, и их заряд батареи низкий.

Мое приложение в настоящее время предоставляет оба разрешения:

android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATION

Мой вопрос:

как я могу показать местоположение синей точкой при низком заряде батареи?

Можно ли указать точность / использование батареи по коду?

ОБНОВИТЬ

На самом деле я понял, что способ сделать это состоит в том, чтобы использоватьGoogleApiClient«sFusedLocationApi

    mGoogleApiClient = new GoogleApiClient.Builder(context)
            .addApi(LocationServices.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();

Я настроил GoogleApiClient внутри своей активности, позвонив:

GoogleApiClient.connect() в начале деятельностиGoogleApiClient.disconnect() на остановке деятельности

наonConnected Обратный вызов Я установил критерии для обновлений местоположения: самый быстрый интервал в 1 минуту с низким приоритетом мощности:

    private static final LocationRequest REQUEST = LocationRequest.create()
        .setFastestInterval(60000)   // in milliseconds
        .setInterval(180000)         // in milliseconds
        .setPriority(LocationRequest.PRIORITY_LOW_POWER);

    @Override
    public void onConnected(Bundle bundle) {
        LocationServices.FusedLocationApi.requestLocationUpdates(
            mGoogleApiClient,
            REQUEST,
            this);  // LocationListener
    }

Я проверил, что GoogleApiClient правильно подключается при запуске, но по некоторым причинам, когда я посещаю фрагмент со встроенным MapView, я все равно получаювысокая зарядка батареи для моего приложения на экране настроек / местоположения!

Кажется, MapView игнорирует эти критерии низкой мощности!

Ответы на вопрос(0)

Ваш ответ на вопрос