API распознавания активности не обнаруживает изменения местоположения - Android OREO
Проблема: API распознавания активности имеет службу намерений, которая будет получать движения и получать их как часть намерения (onHandleIntent). Когда я изменил свое приложение на целевой Android Oreo, функциональность ведет себя как показано ниже
- Пока приложение находится на переднем плане, приложение обнаруживает действия.
- в то время как приложение в фоновом режиме, оно не обнаруживает действия
Я пытался изменить службу намерений на JobIntentService, но не работает.
Кто-нибудь может помочь в этом?
Заранее спасибо.
2 ответа
Вам следует проверить наличие ограничений на определение местоположения для приложений в Oreo, когда они работают в фоновом режиме или используют фоновые службы. Ответ заключается в том, чтобы использовать службу переднего плана или вывести приложение на передний план.
Я столкнулся с той же проблемой. Мое приложение работало как шарм на предыдущих версиях Android, но в Oreo обновлений местоположения не было.
Нашел решение в: https://developer.android.com/about/versions/oreo/background-location-limits.html
У меня есть служба прослушивания местоположения, которая работает в фоновом режиме. В orea фоновые службы получают только несколько обновлений местоположения. Это должно быть изменено на службу переднего плана. Единственное, что мне нужно было сделать, это вызвать startForeground() внутри onCreate() сервиса.