Насколько я понимаю, вы читаете это: https://developer.android.com/about/versions/oreo/background
В Android 9 есть много изменений, связанных с фоновыми службами и, в частности, с GPS. Обратите внимание также на это (поэтому нацеливание на API23 не является решением):
По умолчанию эти изменения затрагивают только приложения, ориентированные на Android 8.0 (уровень API 26) или выше.Однако пользователи могут включить эти ограничения для любого приложения на экране «Настройки», даже если приложение предназначено для уровня API ниже 26. Возможно, вам придется обновить приложение, чтобы соответствовать новым ограничениям.
Что вы можете сделать прямо сейчас и как мы заставляем это работать в наших приложениях.Переведите ваш сервис в режим совместимости с Android 9. Я предлагаю использовать:
startForegroundService()
Сделайте так, чтобы ваш сервис работал на переднем плане.Это небольшое изменение.Просто поменяйте один флаг и запустите свой сервис таким образом.
Показывать уведомление о том, что ваше приложение работает (это будет поддерживать ваше приложение работающим, даже если пользователь покидает приложение, в противном случае - ОС Android ограничит ваш сервис)
Таргетинг API23 также является плохой идеей, посколькуиз этого:
Начиная с 1 августа 2019 года Google Play требует, чтобы новые приложения были ориентированы как минимум на Android 9.0 (уровень API 28), а обновления приложений предназначались для Android 9.0 с 1 ноября 2019 года.даты, новые приложения и обновления приложений должны быть ориентированы как минимум на Android 8.0 (уровень API 26).
TL; DR 1. Перенести службу на передний план 2. Создать простое уведомление, которое сообщит вашему пользователю, что приложениеработает 3. Запустите сервис с помощью startForeground ()