安卓短信捕获

3
我希望开发这样一个应用程序,在安装时,我发送短信时可以选择使用我的应用程序或默认短信应用程序。
有没有办法捕获即将发送的短信?
2个回答

2
你可以向你的活动(Activity)的AndroidManifest.xml描述中添加以下意图过滤器,当用户点击联系人和短信应用程序中的“发送短信”操作时,这将允许用户选择你的应用程序进行短信发送:
<intent-filter>
   <action android:name="android.intent.action.SENDTO"></action>
   <data android:scheme="smsto"></data>
   <category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>

这段代码传递了一个数据uri,格式为smsto://目标号码,你的应用需要处理短信输入和发送工作,可以使用SMSManager实现。


我已经在AndroidManifest.xml中添加了意图过滤器。应用程序已安装在我的三星Galaxy上。但现在,当短信发送时,我的应用程序仍然没有收到通知。简而言之,什么也没发生。我需要做一些更改才能将我的应用程序设置为默认的短信客户端吗? - success_anil
一个对话框应该弹出来,让你选择默认的短信应用和你的应用。这可能是三星在他们的启动器应用程序中所做的更改,也许他们没有使用任何股票意图来启动他们的短信应用程序。您可以通过查看DDMS中的调试器日志并向某人发送短信来查看他们正在使用哪个意图。 - Frank
谢谢Frank。短信应用程序检测是否也适用于模拟器?截至目前,我已经测试过它在两台手机(索尼Xperia)和模拟器上都无法工作。有一个名为ChompSMS的应用程序可以在Android市场上获得(并且可以免费下载.apk文件),具有我们正在讨论的相同功能。在将Chomp SMS安装到模拟器后,当我尝试通过模拟器发送短信时,它会给我提供从默认短信应用程序或Chomp SMS发送短信的选项。 - success_anil
谢谢Frank..我解决了...我在AndroidManifest.xml中放置意图过滤器标签的位置不对。 - success_anil
我的应用程序有一个问题,当用户尝试从联系人应用程序向通讯录中的联系人发送短信时,会弹出一个窗口,但如果他尝试从短信应用程序重新发送短信,则不会出现此类弹出窗口。 - success_anil

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接