Разрешения на определение местоположения с тремя состояниями в Android 10 дают пользователям больший контроль над тем, как приложения получают доступ к местоположению их устройств.
В Android 9 и более ранних версиях пользователи делали постоянный выбор, предоставляя приложениям доступ к местоположению. Они могли либо Запретить , либо Разрешить , последний из которых предоставлял приложениям постоянный доступ (передний план и фон). Разрешения на определение местоположения с тремя состояниями в Android 10 предоставляют пользователям три варианта предоставления приложению доступа к местоположению устройства. Пользователям предлагается предоставить или отклонить уровень разрешений, когда приложение запрашивает его.
Обычно пользователь видит три варианта, представленные на рис. 1. Однако бывают случаи использования, когда требуются только два из этих вариантов, и в таких случаях показаны только эти два.
Это три варианта:
- Разрешить все время : местоположение устройства известно приложению, даже когда оно не используется (работает в фоновом режиме). Это эквивалентно разрешению в Android 9 и более ранних версиях.
- Разрешить только во время использования приложения : (только передний план) местоположение устройства видно приложению только тогда, когда оно активно работает.
- Запретить : местоположение устройства никогда не будет видно приложению. Это то же самое, что и отказ в разрешении в Android 9 и ниже.
Пользователям предлагается предоставить разрешение на доступ к местоположению, когда приложения запрашивают разрешение.
Как только пользователь предоставляет разрешение на доступ «Разрешить только во время использования приложения », приложение может запросить поэтапное увеличение доступа к разрешению «Все время ». Пользователь видит диалоговое окно запроса (показанное на рис. 2 ). Если пользователь выбирает Сохранить доступ во время использования , когда приложение получает доступ к местоположению устройства при следующем использовании, диалоговое окно предлагает вариант Сохранить и больше не спрашивать .
Диалоговое окно появляется при следующих условиях для приложений, ориентированных на Android 10:
- По крайней мере, через 24 часа после предоставления разрешения.
- Только если приложение получает данные о местоположении в фоновом режиме.
- Когда экран включен, а пользователь не использует другое приложение.
Дополнительные сведения о запросе разрешений см. в разделе Доступ приложений к местоположению устройства . Дополнительные сведения о том, предназначено ли ваше приложение для Android 9 и более ранних версий, см. в разделе Продолжение действий, инициированных пользователем .
Влияние
Функция разрешений на определение местоположения в трех состояниях влияет на любое приложение, которому требуется доступ к местоположению устройства при работе в фоновом режиме, и требуется в Android 10.
Вы можете изменить свой код, но вы не можете изменять или настраивать поведение, связанное с разрешениями, в фреймворке.
Реализация
Разрешения на размещение с тремя состояниями применяются к приложениям в Android 10 независимо от целевого SDK приложения.
Сведения о реализации вариантов использования вашего приложения (при обновлении) см. в разделе « Проектирование сценариев обновления устройства » в документации для разработчиков.
Чтобы узнать, как включить доступ для различных вариантов использования (например, для запроса фонового доступа к местоположению для таких приложений, как Карты Google или сервисы Google Play), просмотрите эти темы на странице Доступ приложений к местоположению устройства :
Доступ к местоположению в приложении
Пользователи могут изменить права доступа вашего приложения на Запретить или Разрешить только во время использования приложения, если они того пожелают. Для разрешения на доступ к местоположению в приложении, а также для всех собственных и сторонних приложений укажите уровни пользовательского контроля, указанные в следующей таблице.
Приложение типа разрешения должно запросить | Параметры пользователя для предоставления |
---|---|
Приложение запрашивает только разрешения переднего плана | Разрешить только во время использования приложения Отрицать |
Приложение всегда запрашивает разрешение (передний план и фон) | Разрешить все время Разрешить только во время использования приложения Отрицать |
Все приложения с запросами доступа к местоположению | Разрешить только во время использования приложения |
Эти разрешения применяются ко всем запросам местоположения. Приложениям с Разрешить только при использовании разрешений приложений не разрешено фоновое сканирование Wi-Fi или сотовых сетей.
В Android 11 или более ранней версии приложениям с параметром Разрешить только при использовании разрешений приложения не разрешено фоновое сканирование Bluetooth. Начиная с Android 12, приложения с Разрешить только при использовании разрешений приложения могут получать результаты сканирования Bluetooth, задав для атрибута android:usesPermissionFlags
значение neverForLocation
. Дополнительные сведения см. в разделе Приложение не получает физическое местоположение .
обновления ОС
При обновлении ОС до Android 10 разрешения на определение местоположения приложения переводятся в соответствии со следующим:
- On становится Разрешить только во время использования .
- Off остается выключенным ( Deny ).
- Предварительно предоставленный доступ к местоположению становится разрешенным только во время использования до предоставления.