【问题标题】:Android intent filter: add attachment to SMS/MMS messageAndroid 意图过滤器:向 SMS/MMS 消息添加附件
【发布时间】:2011-12-13 17:58:27
【问题描述】:

当用户尝试向 SMS/MMS 消息添加附件时会触发什么意图?我尝试了这些,但它们都不起作用:

GET_CONTENT 与 DEFAULT 类别和“/”mimeType 选择默认类别和“/”mimeType

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

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

澄清一下,我说的是在用户尝试将某些内容附加到 SMS 或 MMS 消息时出现的对话框中添加我的应用作为选项。

【问题讨论】:

    标签: android android-intent intentfilter


    【解决方案1】:

    通常用户这样做是为了将图片添加到彩信中:

    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>
    

    更新:

    要查看彩信应用如何添加附件,请参阅此代码: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 操作。

    【讨论】:

    • 这不会将我的应用程序添加到用户在添加附件时可以选择的应用程序列表中。这就是我所追求的。
    • 啊,对不起。我误解了你的问题。使用(希望)有用的链接更新了答案。
    • 啊。在选择附件类型之前,附件对话框实际上不会触发 Intent。我一直希望我的应用程序会出现在第一个对话框中,而不是第二个对话框中。
    • @Peter Knego 上面的建议链接是死链接。答案仍然有效吗?
    【解决方案2】:

    事实证明,附件对话框不像电子邮件附件那样具有意图。这是一个控制附件类型的中间对话框。

    在我的例子中,选择与 MIME 类型相对应的类型(例如 image/png)会触发意图并将我的应用程序显示为选项之一。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多