android - 是否可以在 Android 上伪造传入的短信?

标签 android android-intent sms android-contentprovider

在特定情况下,我希望我的应用程序能够在用户设备上“伪造”收到的短信,作为一种通知。当我通常使用 Twilio 向我的用户发送文本但我知道他们已经拥有我的应用程序时,这会为我省钱。有什么办法吗?我想这可能与 Intents 和 Content Provider 有关,但我真的不知道从哪里开始。

澄清一下: 我不是 Android 的新手,我确实尊重所有正常的通知方法。但是,我的应用程序可以选择加入短信,我希望能够免费触发它们而不是付费。这是针对 SMS 特定用途,不能替代普通通知。

最佳答案

是的(虽然我真的不支持这样做)理论上可以通过创建和广播适当的 Intent 来实现。具体来说,他们的 android.provider.Telephony.SMS_RECEIVED Intent 将被任何正在收听 SMS 消息的人接收,包括默认的 SMS 应用程序。这将导致显示通知。

综上所述,我只在自定义版本的 Android 系统进程中完成过此操作。我真的不确定通用应用程序是否可以做到这一点(事实上,我有点怀疑)。另一个需要注意的是,您需要将数据转化为代表 SMS 消息的二进制数据格式的 PDU。您可以查一下,但这很重要。

更好的方法是让您的应用程序在托盘中显示通知,这是行为良好的应用程序应该通知用户事件的方式。看看 Notification类。

关于android - 是否可以在 Android 上伪造传入的短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014239/

相关文章:

java - 来自 Arraylist 的自定义 ListView

android - 如何将 Activity 实例传递给另一个 Activity

java - 将其他应用程序的图像共享到我的应用程序

android - 我可以发送 "SMS received intent"吗?

android - 到 bitmap.recycle(),或不到 bitmap.recycle()

android - 如何在 Android 中请求 root 访问权限?

java - Android:在 DialogPreference 摘要中支持 %s 扩展

java - 选择共享链接/文本时看不到我的应用程序

ios - iOS 应用程序可以读取/访问 SMS 文本吗?

android - 更改屏幕方向后广播接收器崩溃并且不工作