Как описано на страницах Запрос разрешений на доступ к данным о местоположении и Рекомендации по обеспечению конфиденциальности, приложения должны запрашивать только те разрешения на доступ к данным о местоположении, которые необходимы для работы пользовательских функций, и надлежащим образом сообщать об этом пользователям. В большинстве случаев доступ к данным о местоположении требуется, только когда пользователь взаимодействует с приложением. Если вашему приложению необходим доступ к данным о местоположении в фоновом режиме, например для реализации геозонирования, убедитесь, что это критически важно для основных функций приложения, приносит очевидную пользу пользователю и делается понятным для него способом.
Контрольный список: доступ к данным о местоположении в фоновом режиме
Чтобы определить, есть ли в коде приложения запросы доступа к местоположению в фоновом режиме, воспользуйтесь контрольным списком ниже.
В манифесте приложения проверьте разрешения
ACCESS_COARSE_LOCATIONиACCESS_FINE_LOCATION. Убедитесь, что вашему приложению действительно нужен доступ к данным о местоположении.- Если приложение предназначено для Android 10 (уровень API 29) или более поздней версии, также проверьте разрешение
ACCESS_BACKGROUND_LOCATION. Убедитесь, что в вашем приложении есть функция, для которой требуется это разрешение.
- Если приложение предназначено для Android 10 (уровень API 29) или более поздней версии, также проверьте разрешение
Проверьте, используются ли в вашем коде API для доступа к данным о местоположении, например Fused Location Provider API, Geofencing API или
LocationManagerAPI. Для этого найдите следующие конструкции:- Фоновые службы
WorkManagerилиJobSchedulerзадачAlarmManagerопераций- Отложенные интенты, вызываемые из виджета приложения.
Если в вашем приложении используется SDK или библиотека, которым нужен доступ к данным о местоположении, то этот доступ будет считаться предоставленным вашему приложению. Чтобы узнать, нужен ли SDK или библиотеке доступ к данным о местоположении, ознакомьтесь с документацией к ним.
Оценка доступа к данным о местоположении в фоновом режиме
Если вы обнаружите, что ваше приложение получает доступ к данным о местоположении в фоновом режиме, рекомендуем сделать следующее:
- Определите, необходим ли доступ к данным о местоположении в фоновом режиме для работы основных функций приложения.
Если доступ к данным о местоположении в фоновом режиме не требуется, удалите его.
Если ваше приложение предназначено для Android 10 (уровень API 29) или более поздней версии, удалите разрешение
ACCESS_BACKGROUND_LOCATIONиз манифеста приложения. Если вы удалите это разрешение, у приложения не будет постоянного доступа к данным о местоположении на устройствах с Android 10.Убедитесь, что пользователь знает о том, что приложение получает доступ к данным о местоположении в фоновом режиме. Это особенно важно в случаях, когда пользователям не очевидно, что происходит.
По возможности проведите рефакторинг логики доступа к данным о местоположении так, чтобы приложение запрашивало их, только когда пользователь видит, что оно работает.
Ограниченное обновление данных о местоположении в фоновом режиме
Если вашему приложению необходим доступ к данным о местоположении в фоновом режиме, помните, что на устройствах с Android 8.0 (уровень API 26) и более поздних версий действуют ограничения на фоновый доступ к данным о местоположении. Это позволяет экономить заряд батареи. В этих версиях Android, если приложение работает в фоновом режиме, оно может получать обновления местоположения только несколько раз в час. Подробнее об ограничениях на доступ к данным о местоположении в фоновом режиме…
Дополнительные ресурсы
Дополнительную информацию о доступе к данным о местоположении в фоновом режиме можно найти в следующих материалах:
Видео
Как найти возможные случаи использования доступа к данным о местоположении в фоновом режиме
Образцы
В примере приложения с доступом к данным о местоположении в фоновом режиме показано, как правильно запрашивать доступ к геоданным, когда приложение работает в фоновом режиме.