@AlbertForest

Как заставить работать BroadcastReceiver, когда приложение находится в фоне или закрыто?

У меня есть приложение, для пересылки важных смс сообщений в мой телеграм.
Оно долгое время отлично работало на моем устройстве с android 11. Недавно я сменил устройство на более новое с android 13, и тут начались проблемы.
Мой приемник работает только тогда, когда приложение находится на переднем плане.
Я не силен в разработке для android, и мне не удалось найти способ заставить BroadcastReceiver работать постоянно.
Пробовал отключить отзыв разрешений при неактивности в настройках, но увы, это не помогло.

Есть ли способ заставить устройство не отключать мой приемник?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
Начиная с 12го закручивают гайки в плане безопасности. Смс не моя тема, но краем глаза видел упоминание, что есть новый функционал. Получить доступ к коду активации из смс. Почитайте. Может подписку на получение всех и оставили..

По аналогии с другими что нибудь типа Foreground_sms_...
Ответ написан
@AlexVWill
Точно не помню какие там нюансы с BroadcastReceiver, давно этот вопрос изучал. По памяти - там его можно заставить работать, но только по моему если устройство активно и экран включен. Для этого надо в манифесте написать
<uses-permission android:name="android.permission.QUICKBOOT_POWERON" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

и соответствующие системные разрешения запросить и получить.
Иной способ это использовать какой то шедулер для того, чтобы периодически запускать сервис и проверять нужное состояние: WorkManager, JobScheduler или AlarmManager
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы