В этой статье рассматриваются следующие темы:
- Как запросить доступ к данным о местоположении в фоновом режиме.
- Как обрабатывать запрос в зависимости от целевой версии 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 можно найти в следующих материалах:
Практические работы
Видео
Образцы
- Пример приложения, в котором показано, как использовать разрешения на доступ к данным о местоположении.