Android意图过滤器:添加到SMS / MMS消息的附件

时间:2011-12-13 17:58:27

标签: android android-intent intentfilter

当用户尝试将附件添加到SMS / MMS消息时会触发什么意图?我尝试了这些,但没有一个能起作用:

带有DEFAULT类别的GET_CONTENT和“ / ”mimeType 选择DEFAULT类别和“ / ”mimeType

我也尝试了上面的类别OPENABLE和BROWSABLE。

我无法在任何地方找到此文件。它似乎与电子邮件附件过滤器的意图不同。

为了澄清,我正在谈论在用户尝试将某些内容附加到短信或彩信时出现的对话框中将我的应用添加为选项。

2 个答案:

答案 0 :(得分:2)

通常用户这样做是为MMS添加图片:

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra("sms_body", "some text"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));
sendIntent.setType("image/png");

因此,您应该为ACTION_SEND action注册您的活动。

您还可以过滤通过mime="image/png"过滤器附加图片的意图:

<intent-filter android:icon="drawable resource"
           android:label="string resource"
           android:priority="integer" >
    <action android:name="ACTION_SEND" />
    <data android:mimeType="image/png"/>
</intent-filter>

<强>更新

要了解MMS应用添加附件的方式,请参阅以下代码:http://www.google.com/codesearch#cZwlSNS7aEw/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java&exact_package=android&q=AttachmentTypeSelectorAdapter&type=cs&l=2415

在大多数情况下,您的应用需要注册ACTION_GET_CONTENT操作。

答案 1 :(得分:0)

原来,附件对话框不像电子邮件附件那样。它是一个控制附件类型的中间对话框。

在我的情况下,选择与MIME类型相对应的类型(例如image / png)会触发intent并将我的应用程序显示为其中一个选项。

感谢Peter Knego提供Android源代码链接。