Для дополнительной защиты конфиденциальности пользователей в Android 11 добавлен одноразовый доступ к местоположению и изменен способ предоставления пользователями фонового доступа к местоположению. Эти обновления затрагивают все приложения, работающие на Android 11 и более поздних версиях.
Разовый доступ
В Android 11 и более поздних версиях всякий раз, когда ваше приложение запрашивает доступ к местоположению на переднем плане , в диалоговом окне системных разрешений появляется параметр « Только в этот раз» , как показано на рисунке 1. Этот параметр дает пользователям больше контроля над тем, когда приложение может получить доступ к информации о местоположении.
Узнайте больше о том, как система обрабатывает одноразовые разрешения .
Доступ к фоновому местоположению
Android 11 меняет способ получения функцией вашего приложения доступа к фоновому местоположению . В этом разделе описывается каждое из этих изменений.
Если функция вашего приложения получает доступ к местоположению в фоновом режиме, убедитесь, что такой доступ необходим. Рассмотрите возможность получения информации, необходимой этой функции, другими способами, как описано на странице о том, как получить доступ к местоположению в фоновом режиме .
Запросить фоновое местоположение отдельно
Как описано в руководстве о том, как запросить доступ к местоположению во время выполнения , вам следует выполнять дополнительные запросы местоположения. Если ваше приложение предназначено для Android 11 или более поздней версии, система применяет эту рекомендацию. Если вы одновременно запрашиваете разрешение на определение местоположения на переднем плане и разрешение на определение местоположения в фоновом режиме, система игнорирует запрос и не предоставляет вашему приложению ни одного разрешения.
Изменения в диалоге разрешений
Изменить детали
Имя изменения : BACKGROUND_RATIONALE_CHANGE_ID
Идентификатор изменения : 147316723
Как переключить
Когда вы тестируете совместимость своего приложения с Android 11, вы можете включить или выключить это изменение, используя следующие команды ADB:
adb shell am compat enable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
adb shell am compat disable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
Дополнительные сведения о платформе совместимости и переключении изменений см. в разделе Тестирование и отладка изменений поведения платформы в вашем приложении .
Когда функция вашего приложения запрашивает фоновое местоположение на устройстве под управлением Android 11 или более поздней версии, в системном диалоговом окне нет кнопки для включения доступа к фоновому местоположению. Чтобы включить доступ к местоположению в фоновом режиме, пользователи должны установить параметр «Разрешить постоянно» для разрешения определения местоположения вашего приложения на странице настроек, как описано в руководстве о том, как запросить местоположение в фоновом режиме .
Дополнительные ресурсы
Для получения дополнительной информации о доступе к фоновому местоположению просмотрите следующие материалы: