android - 非默认 SMS 应用程序在收到 SMS 时能否始终接收广播,即使在强制关闭时也是如此?

标签 android sms android-broadcastreceiver

所以我关注了这个guideline收到短信时显示一个简单的 toast 。虽然它在应用程序运行时工作正常,但当我进入设置并强制关闭应用程序时,它停止工作。

我在 StackOverflow 上检查了很多类似问题的答案,但没有人真正回答是否(以及如何)在每次收到 SMS 时都执行一段代码,而无需将应用程序设置为默认的 SMS 应用程序设备(Android 4.4+)。是吗?

考虑到甚至可以停止服务,当这种情况发生时,服务就不再是解决方案了。

我对 API 级别 19+ 感兴趣

谢谢

最佳答案

很遗憾,不,如果您的应用不是默认的 SMS 应用,这实际上是不可能的。

当用户强行关闭您的应用程序时,它会回到已停止状态,并且为隐式 SMS_RECEIVED 广播静态注册的接收器将无法工作,直到您应用程序已再次明确启动;例如,用户通过显式启动器快捷方式启动您的应用。

另一方面,默认的 SMS 应用程序将通过 SMS_DELIVER 广播进行传送,这是明确的。即使默认已被强制停止,该广播也会像任何其他显式启动 Intent 一样将其从 stopped 状态中带出。

如果及时性不是主要问题,您可以根据需要查询 SMS 提供程序 - 例如,在每次启动时 - 并确定自上次检查以来您是否错过了任何新消息。

关于android - 非默认 SMS 应用程序在收到 SMS 时能否始终接收广播,即使在强制关闭时也是如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012158/

相关文章:

java - getBytes 然后 toString 每次都不会给出相同的结果

android - 想在我的偏好中有一个按钮(android)

android - 试图让 HTML HREF SMS 链接在 jasonette for android 中工作

java - 从 BroadcastReceiver 中删除文件

Android广播接收器未注册报错

java - 在 Android Studio 中获取列表时,从 Parse 获取列表而不自动选择

android - 使用自定义 BaseAdapter 从 ListView 中删除项目

sms - Twilio 通过 Google Apps 脚本发送和接收短信

linux - Kannel 分步安装教程

java - Android BroadcastReceiver,似乎不像它应该的那样,我没有正确接收 Intent