Обновления местоположения в Android 11

Для дальнейшей защиты конфиденциальности пользователей Android 11 добавляет одноразовый доступ к местоположению и изменяет способ предоставления пользователями фонового доступа к местоположению. Эти обновления затрагивают все приложения, работающие на Android 11 и выше.

Одноразовый доступ

Рисунок 1. Системный диалог для разрешения местоположения на переднем плане включает опцию « Только в этот раз» .

На 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 или выше, системный диалог не включает кнопку для включения фонового доступа к местоположению. Чтобы включить фоновый доступ к местоположению, пользователи должны установить опцию Разрешить все время для разрешения местоположения вашего приложения на странице настроек, как описано в руководстве по запросу фонового местоположения .

Дополнительные ресурсы

Для получения дополнительной информации о доступе к фоновому местоположению ознакомьтесь со следующими материалами:

Видео