Android Фоновое приложение - Foreground. Служба FusedLocationProviderClient останавливает предоставление обновлений местоположения. - PullRequest
1 голос
/ 01 февраля 2020

Я уже несколько месяцев сталкиваюсь с этой проблемой. Мое android приложение использует службу переднего плана (смоделировано this для отслеживания местоположения в течение коротких периодов. Это работало хорошо до Android P, но с выпуском Android 10 / Q, служба переднего плана прекращает отправку обновлений в течение десяти минут, прежде чем снова начать обновлять, как следует. Эти обстоятельства:

После того, как фоновые обновления будут обновлены, они будут остановлены на период до десяти минут до перезапуска и отправка пакетных обновлений местоположения надлежащим образом. В течение этого периода все еще отображается необходимое уведомление переднего плана, и служба работает в соответствии с ОС Android. Единственное другое странное поведение заключается в том, что иногда она вызывает обратный вызов OnLocationAvailability для LocationCallback, но он делает это, будь то на переднем плане или на заднем плане.

Вещи s Я сделал:

  • Отключение пакетных обновлений местоположения: это работает для получения согласованных обновлений, но нарушает еще одну очень классную часть моего приложения. Вместо этого я предпочел бы, чтобы ОС работала правильно.
  • Добавление обоих новых Android изменений манифеста Q (ACCESS_BACKGROUND_PERMISSION и foregroundServiceType = "location"). Я сделал это как часть Android Q обновления.
  • Расширил мою регистрацию в службе переднего плана, которая была бесполезна, так как он просто ожидает FusedLocationProviderClient

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

...