Может ли приложение SMS, отличное от стандартного, ВСЕГДА получать широковещательную рассылку при получении SMS, даже если оно принудительно закрыто?

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

Я проверил много ответов здесь, в StackOverflow, на похожие вопросы, но ни один из них на самом деле не отвечает, можно ли (и как) заставить фрагмент кода выполняться КАЖДЫЙ раз, когда приходит SMS, без установки приложения в качестве приложения SMS по умолчанию на устройстве (Android 4.4+). Это?

Учтите, что даже службу можно остановить, и когда это происходит, служба больше не является решением.

Меня интересует уровень API 19+

Спасибо


person michnovka    schedule 01.12.2015    source источник


Ответы (1)


К сожалению, нет, это невозможно, если ваше приложение не является приложением SMS по умолчанию.

Когда пользователь принудительно закрывает ваше приложение, оно возвращается в состояние stopped, и статически зарегистрированный Receiver для неявной трансляции SMS_RECEIVED не будет работать до тех пор, пока ваше приложение не будет явно запущено снова; например, когда пользователь запускает ваше приложение с явного ярлыка запуска.

С другой стороны, приложение SMS по умолчанию будет доставлять SMS_DELIVER широковещательную рассылку, и это явно. Даже если установка по умолчанию была принудительно остановлена, эта широковещательная рассылка будет действовать так же, как и любой другой явный запуск Intent, чтобы вывести ее из состояния остановлено.

Если своевременность не является серьезной проблемой, вы можете просто запрашивать поставщика SMS по мере необходимости, например, при каждом запуске, и определять, не пропустили ли вы какие-либо новые сообщения с момента последней проверки.

person Mike M.    schedule 01.12.2015