На этой странице обсуждается следующее:
- Как запросить фоновый доступ к местоположению.
- Как обработать запрос в зависимости от целевой версии SDK вашего приложения.
- Как предпочтения пользователя относительно приблизительного местоположения влияют на то, как ваше приложение получает данные о фоновом местоположении.
Содержимое диалогового окна разрешений зависит от целевой версии SDK.
Когда функция вашего приложения запрашивает данные о местоположении в фоновом режиме на устройстве под управлением Android 10 (уровень API 29), в диалоговом окне системных разрешений появляется параметр « Разрешить всегда» . Если пользователь выбирает этот параметр, функция вашего приложения получает доступ к данным о местоположении в фоновом режиме.
Однако в Android 11 (уровень API 30) и выше системный диалог не включает опцию « Разрешить постоянно» . Вместо этого пользователи должны включить функцию определения местоположения в фоновом режиме на странице настроек, как показано на рисунке 7.
Вы можете помочь пользователям перейти на эту страницу настроек, следуя рекомендациям при запросе разрешения на определение местоположения в фоновом режиме. Процесс предоставления разрешения зависит от целевой версии SDK вашего приложения.
Приложение предназначено для Android 11 и выше.
Если вашему приложению не предоставлено разрешение ACCESS_BACKGROUND_LOCATION
и shouldShowRequestPermissionRationale()
возвращает true
, покажите пользователям образовательный пользовательский интерфейс, включающий следующее:
- Четкое объяснение того, почему функция вашего приложения нуждается в доступе к фоновому местоположению.
- Видимая пользователем метка параметра настроек, разрешающего фоновое расположение (например, «Разрешить всегда» на рисунке 7). Вы можете получить эту метку с помощью метода
getBackgroundPermissionOptionLabel()
. Возвращаемое значение этого метода локализуется в соответствии с языковыми настройками устройства пользователя. - Возможность для пользователей отказаться от разрешения. Если пользователи откажутся от доступа к данным о местоположении в фоновом режиме, они смогут продолжить использовать ваше приложение.
Приложение предназначено для Android 10 или ниже.
Когда функция вашего приложения запрашивает доступ к данным о местоположении в фоновом режиме, пользователи видят системное диалоговое окно. Это диалоговое окно включает в себя возможность перейти к параметрам разрешения доступа к данным о местоположении на странице настроек.
Если ваше приложение уже следует лучшим практикам запроса разрешений на определение местоположения, вам не нужно вносить какие-либо изменения для поддержки этого поведения.
Пользователь может влиять на точность определения местоположения в фоновом режиме
Если пользователь запрашивает приблизительное местоположение , выбранные им в диалоговом окне разрешений на доступ к данным о местоположении применяются и к фоновому местоположению. Другими словами, если пользователь предоставляет вашему приложению разрешение ACCESS_BACKGROUND_LOCATION
, но в фоновом режиме предоставляет только доступ к приблизительному местоположению, ваше приложение также будет иметь доступ только к приблизительному местоположению в фоновом режиме.
Дополнительные ресурсы
Дополнительную информацию о разрешениях на определение местоположения в Android можно найти в следующих материалах:
Codelabs
Видео
Образцы
- Пример приложения , демонстрирующего использование разрешений на определение местоположения.