Невозможно получать события onSensorChanged внутри диспетчера работ, когда приложение находится в фоновом режиме.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получать события onSensorChanged внутри диспетчера работ, когда приложение находится в фоновом режиме.

Сообщение Anonymous »

У меня есть приложение, которое прослушивает трансляцию и при получении трансляции немедленно запускает менеджер работы. WorkManager продолжает прослушивать данные датчиков, таких как Приближение, Акселерометр и Магнитометр. Я использую таймер, чтобы WorkManager работал до тех пор, пока не будут выполнены определенные условия. ниже приведена моя реализация workManager, которая реализует SensorEventListener

Код: Выделить всё

class CustomWorkManager(appContext: Context, private val parameters: WorkerParameters) :
CoroutineWorker(appContext, parameters), SensorEventListener
Я получаю данные датчика, переопределив метод onSensorChanged, пока приложение находится на переднем плане. проблема в том, что когда приложение переходит в фоновый режим (т. е. приложение закрывается), и мы получаем широковещательное сообщение о том, что менеджер работ инициирован, но я не получаю события по методу onSensorChanged. Теперь, согласно документации, сказано, что для (уровня API 28) или выше нам придется прослушивать данные датчиков, когда ваше приложение находится на переднем плане или как часть службы переднего плана. strong>.
Поэтому я попробовал запустить workManager с помощью метода setForeground, но мне все равно не удалось получить какие-либо события для метода onSensorChanged, если приложение находится в фон. Итак, невозможно ли получить данные датчиков для API > 28 внутри workManager, даже если мы установили setForeground? поскольку в документации упоминается, что предлагается использовать службу переднего плана, а для приложений, предназначенных для Android 12 (уровень API 31) или выше, не могут запускаться службы переднего плана во время работы в фоновом режиме из-за ограничений, за исключением нескольких особые случаи. поэтому у нас нет другого выхода, кроме как запустить диспетчер работ и попытаться прослушать данные датчиков.
Означает ли это, что мы не сможем прослушивать данные датчиков ( Близость, акселерометр, магнитометр) внутри WorkManager, когда приложение работает в фоновом режиме?
Если у кого-нибудь есть какие-либо идеи, пожалуйста, помогите.< /п>

Подробнее здесь: https://stackoverflow.com/questions/742 ... -app-is-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»