Чтобы обеспечить конфиденциальность пользователей, в 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_NAMEadb shell am compat disable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
Дополнительную информацию о тестировании на совместимость и переключении изменений можно найти в статье Тестирование и отладка изменений в поведении платформы в приложении.
Если функция в вашем приложении запрашивает доступ к данным о местоположении в фоновом режиме на устройстве с Android 11 или более поздней версии, в системном диалоговом окне не будет кнопки для включения такого доступа. Чтобы предоставить приложению доступ к данным о местоположении в фоновом режиме, пользователю необходимо выбрать вариант Разрешить в любом режиме на странице настроек, как описано в руководстве Запрос доступа к данным о местоположении в фоновом режиме.
Дополнительные ресурсы
Дополнительную информацию о доступе к данным о местоположении в фоновом режиме можно найти в следующих материалах: