Как Android-приложения отслеживают геопозицию?

В начальных версиях Android использовались классы из пакета android.location для получения местоположения. Даже после открытия документации по этим классам пользователя встречает предупреждение о том, что это нерекомендуемый способ получения местоположения.

 

Предположите, что можно проигнорировать все предупреждения и получить местоположение таким устаревшим способом. Сама реализация достаточно проста. Следует просто сообщить системе, что нужно получить местоположение, и на этом роль пользователя заканчивается. Однако необходимо учитывать некоторые последствия. Этот метод достаточно суров:

1. Нужно реализовать все действия на основе местоположения (например, геозону) самостоятельно.
2. Более того, если выбрать частые обновления местоположения, пользователь подвергнется значительному снижению уровня заряда батареи.
3. Последним важным моментом является получение местоположения. Когда программа работает в фоновом режиме, в этом методе будет получено меньше обновлений, чем в современном подходе.

Современный подход

Современный подход, к сожалению, требует Google Play Services, но он имеет массу преимуществ. Во-первых, здесь имеется дело с несколько иным подходом. Потому что не приложение напрямую подключается к системному модулю, отвечающему за локацию, а делают это библиотеки Google Play. Местоположение периодически обновляется и кэшируется. Благодаря этому приложения имеют немедленный доступ к последнему местоположению пользователя, без необходимости ждать соединения со спутниками GPS. Такой подход, несомненно, снижает потребление батареи пользователем.

С точки зрения программиста этот метод намного проще, и также есть более легкий доступ к функциям, основанным на местоположении, таким как геозона. Еще одним преимуществом является загрузка фонового местоположения. Как уже было сказано, при таком подходе будут получены более частые обновления, чем при традиционном методе.

Использование фонового местоположения

Во-первых, стоит объяснить, когда, по мнению Google, приложение работает в фоновом режиме. Прежде всего, это программа, которая в настоящее время не отображает экран на переднем плане. Здесь есть несколько исключений — самое важное из них — это так называемая служба переднего плана. Это служба, работающая в фоновом режиме, но о ее работе сообщается пользователю уведомлением, которое невозможно очистить. Так работают всевозможные трекеры активности, такие как Endomondo. Приложение, в настоящее время не имеющее видимого экрана и не сигнализирующее пользователю о необходимости действовать с помощью уведомления, рассматривается как приложение, функционирующее в фоновом режиме.

В Android 8.0 Oreo Google ввел довольно радикальные ограничения на загрузку местоположений приложениями, не работающими на переднем плане. Через них по-прежнему можно получить показания местоположения, но частота таких запросов ограничена примерно несколькими запросами в час. Это ограничение было направлено на сокращение чрезмерного отслеживания пользователей другими приложениями и на снижение расхода заряда батареи.

Источник: https://shop.kz/

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

2022-06-13