Использование местоположения в фоновом режиме

В Android 14 (Android U) введены новые ограничения на доступ приложений к местоположению пользователя в фоновом режиме. Чтобы смягчить эти изменения, навигационный SDK был обновлен в версии 5.3.2, чтобы лучше управлять фоновым доступом к местоположению. Мы также рекомендуем вам обновить реализацию, чтобы ваше приложение по-прежнему имело доступ к наиболее точным данным о местоположении.

Как изменения в Android 14 влияют на навигационный SDK

Когда вы вызываете startGuidance() в своем приложении, служба переднего плана начинает показывать пользовательские уведомления для пошаговой навигации. Пошаговая навигация зависит от возможности доступа к местоположению пользователя, чтобы обновить маршрут и показать правильные визуальные и звуковые указания. Начиная с Android 14, для доступа к точному местоположению пользователя в фоновом режиме требуется разрешение пользователя. По умолчанию, если приложение не имеет разрешения пользователя на фоновый доступ к местоположению и пытается запустить приоритетную службу для обновления местоположения, система выдает SecurityException , что приводит к сбою приложения.

Как навигационный SDK решает эту проблему

Начиная с версии 5.3.2, Navigation SDK обрабатывает это SecurityException не влияя на приложение, позволяя навигации продолжать работать в фоновом режиме. Кроме того, Navigation SDK включает разрешение ACCESS_BACKGROUND_LOCATION в свой AndroidManifest . Таким образом, вашему приложению не нужно объявлять само разрешение, поскольку оно будет обработано слиянием Gradle. Однако если уведомление не отображается пользователю до того, как приложение перейдет в фоновый режим, Navigation SDK будет полагаться на систему для предоставления обновлений местоположения. Эти системные обновления могут быть нечастыми или неточными и приводить к неоптимальной навигации. По этой причине мы рекомендуем вам также запрашивать у пользователей доступ к фоновому местоположению.

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

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

образец диалогового окна разрешений

Дополнительную информацию о запросе у пользователей доступа к местоположению см. в разделе Запрос разрешений на определение местоположения | Датчики и местоположение | Android-разработчики .