Предпосылка
Пользователь всегда должен быть проинформирован об использовании его конфиденциальных данных (таких как сбор местоположения в фоновом режиме), этот вопрос призван лучше понять последние ограничения, введенные в Android использовании местоположения и фоновые операции.
Проблема
Возможно ли (в Android последних версиях) создать службу отслеживания местоположения , которая будет отслеживать местоположение устройства, независимо от того, состояние приложения ( передний план / фон ) или состояние устройства ( режим ожидания или режим ожидания, корзины приложений ), чтобы иметь возможность согласованно определять местоположение?
Если предположить, что соединение GPS и inte rnet включено и доступно, возможно ли собирать данные о местоположении, скажем, каждые 10 минут, или устройство, переходящее в режим ожидания или режим ожидания, в любом случае ограничит возможности приложения через некоторое время и откладывать операции (например, сетевые операции), делая невозможным постоянное Обновления местоположения?
В последних android версиях, начиная с Android 8.0 (API 26) , были введены новые способы повышения производительности батареи и обеспечения конфиденциальности пользователей:
То, что я пытался
Насколько я понимаю, служба переднего плана выглядит как лучший вариант:
- постоянно информируйте пользователя (уведомление)
- система не завершает работу службы через несколько секунд (как для фоновых служб, начиная с API 26)
- с меньшей вероятностью будет остановлена системой ( START_STICKY пометить для в противном случае перезапустите)
- может получить блокировку от пробуждения
Тем не менее, кажется, что приложение необходимо внести в белый список, чтобы избежать оптимизации батареи и даже отключить оптимизацию батареи для обслуживания не останавливаться / откладываться.
Ожидаемый результат
Получение обновлений местоположения через регулярные интервалы, каждые 10 минут, например