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

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

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

Видео