Разрешения на размещение в трех штатах

Разрешения на определение местоположения в трех состояниях в Android 10 дают пользователям больше контроля над тем, как приложения получают доступ к местоположению их устройств.

В Android 9 и более ранних версиях пользователи постоянно делали выбор при предоставлении приложениям доступа к местоположению. Они могли либо Deny , либо Allow , последний из которых предоставлял приложениям постоянный доступ (на переднем и заднем плане). Разрешения на определение местоположения в трех состояниях в Android 10 предоставляют пользователям три варианта предоставления приложению доступа к местоположению устройства. Пользователям предлагается предоставить или отклонить уровень разрешений, когда приложение его запрашивает.

Пользователь обычно видит три варианта, представленные на рисунке 1. Однако бывают случаи использования, когда требуются только два из этих вариантов, и в таких случаях показаны только эти два.

Tristate location permissions screen
Рисунок 1. Экран уведомлений с тремя состояниями

Это три варианта:

  • Разрешить постоянно : местоположение устройства известно приложению, даже если оно не используется (работает в фоновом режиме). Это эквивалентно разрешению разрешения в Android 9 и более ранних версиях.
  • Разрешить только во время использования приложения : (только на переднем плане) местоположение устройства видно приложению только во время его активной работы.
  • Запретить : местоположение устройства никогда не будет видно приложению. Это то же самое, что отказать в разрешении в Android 9 и более ранних версиях.

Пользователям предлагается предоставить разрешение на доступ к местоположению, когда приложения запрашивают разрешение.

Если пользователь предоставляет разрешение на доступ «Разрешить» только тогда, когда приложение используется , приложение может постоянно запрашивать постепенное увеличение доступа к «Разрешить» . Пользователь видит диалоговое окно запроса (показано на рисунке 2 ). Если пользователь выбирает «Сохранить доступ во время использования» , когда приложение получает доступ к местоположению устройства при следующем использовании, в диалоговом окне появляется опция « Сохранить и больше не спрашивать ».

Диалоговое окно появляется при следующих условиях для приложений, ориентированных на Android 10:

  • По крайней мере, через 24 часа с момента предоставления разрешения.
  • Только если приложение получает данные о местоположении в фоновом режиме.
  • Когда экран включен, и пользователь не использует другое приложение.
Incremental permissions
Рисунок 2. Дополнительные разрешения

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

Влияние

Функция разрешения местоположения с тремя состояниями влияет на любое приложение, которому требуется доступ к местоположению устройства во время работы в фоновом режиме, и требуется в Android 10.

Вы можете изменить свой код, но не можете изменять или настраивать поведение, связанное с разрешениями, в платформе.

Выполнение

Разрешения на определение местоположения в трех состояниях применяются к приложениям в Android 10 независимо от целевого SDK приложения.

Информацию о реализации вариантов использования вашего приложения (при обновлениях) см. в разделе «Проектирование сценариев обновления устройств» документации для разработчиков.

Чтобы узнать, как включить доступ для различных вариантов использования (например, требование фонового доступа к местоположению для таких приложений, как Карты Google или сервисы Google Play), просмотрите эти темы на странице Доступ приложения к местоположению устройства :

Доступ к местоположению в приложении

Пользователи могут изменить права доступа вашего приложения на «Запретить » или «Разрешить» только во время использования приложения, если захотят. Для разрешения доступа к местоположению в приложении, а также для всех собственных и сторонних приложений укажите уровни пользовательского контроля, указанные в следующей таблице.

Тип разрешения, которое приложение должно запросить Пользовательские возможности предоставления
Приложение запрашивает только разрешения переднего плана Разрешить только при использовании приложения
Отрицать
Приложение всегда запрашивает разрешение (на переднем и заднем плане) Разрешить все время
Разрешить только при использовании приложения
Отрицать
Все приложения с запросами доступа к местоположению Разрешить только при использовании приложения

Эти разрешения применяются ко всем запросам местоположения. Приложениям с параметром «Разрешить только» при использовании разрешений приложения не разрешено фоновое сканирование Wi-Fi или ячеек.

В Android 11 или более ранней версии приложениям с параметром «Разрешить только при использовании разрешений приложения» не разрешено фоновое сканирование Bluetooth. Начиная с Android 12, приложения с разрешением «Только при использовании разрешений приложения» могут получать результаты сканирования Bluetooth, установив для атрибута android:usesPermissionFlags значение neverForLocation . Дополнительные сведения см. в разделе Приложение не определяет физическое местоположение .

Обновления ОС

При обновлении ОС до Android 10 разрешения на определение местоположения приложения преобразуются следующим образом:

  • Вкл. становится Разрешено только во время использования .
  • Выкл. остается выключенным ( Запретить ).
  • Предварительно предоставленный доступ к местоположению становится предварительным разрешением «Разрешить только во время использования» .