Запрос доступа к данным о местоположении в фоновом режиме

В этой статье рассматриваются следующие темы:

  • Как запросить доступ к данным о местоположении в фоновом режиме.
  • Как обрабатывать запрос в зависимости от целевой версии SDK приложения.
  • Как настройки приблизительного местоположения влияют на то, как приложение получает доступ к данным о местоположении в фоновом режиме.
Рисунок 7. На странице настроек есть параметр Разрешить в любом режиме, который предоставляет доступ к данным о местоположении в фоновом режиме.

Содержимое диалогового окна зависит от целевой версии SDK

Если функция в вашем приложении запрашивает доступ к данным о местоположении в фоновом режиме на устройстве с Android 10 (уровень API 29), в диалоговом окне системных разрешений будет вариант Разрешить в любом режиме. Если пользователь выберет этот вариант, функция в вашем приложении получит доступ к данным о местоположении в фоновом режиме.

Однако в Android 11 (уровень API 30) и более поздних версиях в системном диалоговом окне нет варианта Разрешить в любом режиме. Вместо этого пользователи должны включить доступ к данным о местоположении в фоновом режиме на странице настроек, как показано на рисунке 7.

Чтобы пользователям было проще перейти на эту страницу, следуйте рекомендациям по запросу доступа к данным о местоположении в фоновом режиме. Процесс предоставления разрешения зависит от целевой версии SDK приложения.

Приложение предназначено для Android 11 или более поздней версии.

Если у приложения нет разрешения ACCESS_BACKGROUND_LOCATION, а метод shouldShowRequestPermissionRationale() возвращает значение true, покажите пользователям обучающий интерфейс, который включает следующее:

  • Четкое объяснение, почему функции приложения нужен доступ к данным о местоположении в фоновом режиме.
  • Название параметра, который предоставляет доступ к данным о местоположении в фоновом режиме (например, Разрешить в любом режиме на рисунке 7). Чтобы получить этот ярлык, вызовите getBackgroundPermissionOptionLabel(). Возвращаемое значение этого метода локализуется в соответствии с языковыми настройками устройства пользователя.
  • возможность отклонить запрос; Если пользователи откажутся предоставить доступ к данным о местоположении в фоновом режиме, они должны иметь возможность продолжить работу с приложением.
Пользователи могут нажать на системное уведомление, чтобы изменить настройки геолокации для приложения.
Рисунок 8. Уведомление, напоминающее пользователю, что он предоставил приложению доступ к данным о местоположении в фоновом режиме.

Приложение предназначено для Android 10 или более ранней версии

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

Если ваше приложение уже запрашивает доступ к данным о местоположении в соответствии с рекомендациями, вам не нужно ничего менять.

Пользователь может повлиять на точность геолокации в фоновом режиме

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

Дополнительные ресурсы

Дополнительную информацию о разрешениях на доступ к данным о местоположении в Android можно найти в следующих материалах:

Практические работы

Видео

Образцы

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