5

在某种情况下,我希望我的应用能够“伪造”用户设备上的传入短信,作为一种通知。当我通常使用 Twilio 向我的用户发送文本但我知道他们已经拥有我的应用程序时,这会节省我的钱。有没有办法做到这一点?我想这与意图和内容提供者有关,但我真的不知道从哪里开始。

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

4

2 回答 2

2

是的(尽管我真的不支持这样做),理论上可以通过创建和广播正确的意图来实现。具体来说,android.provider.Telephony.SMS_RECEIVED任何正在收听 SMS 消息的人都会收到他们的意图,包括默认的 SMS 应用程序。这将反过来导致显示通知。

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

更好的方法是让您的应用程序在托盘中显示通知,就像表现良好的应用程序应该通知用户事件一样。看看Notification 课堂。

于 2012-08-18T02:02:29.617 回答
1

如果您安装ApiDemos-debug.apk通常随您选择的 SDK 平台一起安装的 apk,您将在

<Api Demos> > App > Notification > IncomingMessage

这个包的完整源代码通常在

<SDK root>/samples/android-xx/ApiDemos
于 2012-08-18T01:52:09.370 回答