Запуск службы для программного контроля входящих звонков, даже если экран телефона заблокирован

Я сделал приложение, которое отслеживает входящие звонки для какой-то цели. Приложение использует сервис, который, в свою очередь, использует PhoneStateListener для мониторинга входящих звонков. Мое требование к приложению заключается в том, чтобы поведение мониторинга входящих вызовов выполнялось, даже если приложение не запущено и экран заблокирован.

Сложность начинается, когда экран телефона заблокирован, а приложение не запущено. Мне все еще нужно, чтобы контролировать входящие телефонные звонки. Для этого я решил использовать PARTIAL_WAKE_LOCK, чтобы процессор работал, даже когда телефон заблокирован.

Приложение работает во всех случаях после того, как я это сделал, но использование PARTIAL_WAKE_LOCK на неопределенный срок, как это, как известно, влияет на срок службы батареи.

Я где-то читал, что AlarmManager может быть альтернативой. Но AlarmManager используется для запуска через определенные промежутки времени, но мне нужно, чтобы служба работала, когда я получаю входящий вызов, но это происходит случайно.

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

0 ответов

Другие вопросы по тегам