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