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