Android: местоположение на Google Картах с низким уровнем заряда батареи
Мое приложение в настоящее время использует КартыGoogle Play Services
speficying:
mMap.setMyLocationEnabled(true);
Я понимаю, каждый раз, когда я отображаю карту в моем приложении:
местоположение обозначено на карте синей точкойзначок местоположения отображается в верхней панелиесли я захожу в меню «Настройки» / «Расположение телефона», мое приложение отображается как «Заряд аккумулятора»Тем не менее, я вижу, что есть приложения, которые используют Карты и по-прежнему отображают местоположение синей точкой, но значок местоположения не отображается в верхней панели, и их заряд батареи низкий.
Мое приложение в настоящее время предоставляет оба разрешения:
android.permission.ACCESS_COARSE_LOCATION
android.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 игнорирует эти критерии низкой мощности!