Использование GPS с DOZE в Android 8

У меня есть приложение, которое запускает фоновую службу для отслеживания местоположения GPS и сравнения его со списком местоположений. Когда он находит совпадение, он отправляет широковещательную рассылку, чтобы вызвать активность переднего плана, которая затем отображает информацию о местоположении. GPS-отслеживание использует возможности GPS в сервисах Google Play и требует обновления примерно каждые 20 секунд.

Большую часть времени пользователь не знает о приложении и может делать другие вещи. Пользовательский интерфейс переднего плана, вероятно, не будет запускаться чаще, чем каждые 2 минуты, и может длиться до 20 минут или более. В остальное время важно, чтобы приложение могло продолжать получать данные о местоположении GPS, не прерывая других действий пользователя.

Я пытаюсь понять влияние новых функций Doze и Standby в Android 8. Из последних документов мне кажется, что они больше не будут работать, а фоновая служба не будет получать свои обновления (или получит только несколько обновлений). каждый час, что бесполезно). Может ли кто-нибудь сказать мне, правильно ли это?

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

Документы также относятся к белому списку, но я не понимаю, что это на самом деле делает. Могу ли я внести свое приложение в белый список, чтобы оно продолжало работать?

Может ли кто-нибудь помочь запутавшемуся разработчику-любителю?

Крис С


person Chris S    schedule 24.08.2018    source источник
comment
Вы нашли какое-нибудь решение?   -  person Fazal Hussain    schedule 14.09.2018


Ответы (1)


Теперь я понимаю это немного лучше. Я не нашел способа сделать это с помощью фоновой службы. Я попытался запросить разрешение REQUEST_IGNORE_BATTERY_OPTIMIZATIONS в манифесте, но это все равно не сработало — отслеживание GPS прекращается через несколько минут. Чтобы делать то, что я хочу, мне пришлось преобразовать отслеживание в службу переднего плана - это работает нормально.

person Christopher S    schedule 16.09.2018