#android #google-maps-android-api-2 #android-location #battery #android-googleapiclient
#Android #google-maps-android-api-2 #android-местоположение #батарея #android-googleapiclient
Вопрос:
У меня есть служба, которая постоянно отслеживает местоположение пользователя (пока она работает) и помещает данные в таблицу SQL, а когда приложение находится на переднем плане -> служба также отправляет обновления в пользовательский интерфейс с указанием местоположения, а карта и местоположение обновляются.
- Когда приложение находится на переднем плане -> запросить местоположение с высокой точностью и частыми обновлениями, чтобы пользователь мог наслаждаться высокой точностью и частыми обновлениями в пользовательском интерфейсе.
- Когда приложение закрыто (запущена только служба) -> запросить обновления с менее точным местоположением, поэтому я не потребляю слишком много батареи, потому что все, что я делаю, это заполняю таблицу.
Итак, какие факторы влияют на использование батареи при отслеживании местоположения?
В примере документов
protected void createLocationRequest() {
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
Они говорят, что
Приоритет PRIORITY_HIGH_ACCURACY в сочетании с настройкой разрешения ACCESS_FINE_LOCATION, заданной в манифесте приложения, и быстрым интервалом обновления в 5000 миллисекунд (5 секунд) приводит к тому, что объединенный поставщик местоположения возвращает обновления местоположения с точностью до нескольких футов.
Итак, это то, что я бы использовал, когда приложение находится на переднем плане (в настройках я вижу, что приложение имеет «высокий уровень заряда батареи» с указанием местоположения).
но какие параметры я должен изменить, когда запущена только служба? Я хочу, чтобы в используемом местоположении было указано: «низкое использование батареи».