【问题标题】:Intent filter for email attachments电子邮件附件的意图过滤器
【发布时间】:2011-01-10 18:13:16
【问题描述】:

我想用我的应用打开电子邮件中的音频附件。目前我的意图过滤器是这样的:

<intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <action android:name="android.intent.action.EDIT" />
        <action android:name="android.intent.action.PICK" />
        <category android:name="android.intent.category.DEFAULT" />
         <data android:mimeType="audio/wav" />
        <data android:scheme="http" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="https" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="content" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="file" android:host="*" android:pathPattern=".*\\.wav"/>
</intent-filter>

这适用于我想要的所有内容,除了电子邮件附件。目前,如果我收到了一个 wav 文件,我唯一能做的就是预览它,然后用 Winamp 打开它(很明显,第 3 方应用程序可以进入)。我找不到我应该添加什么来做到这一点,有人知道吗?

编辑

以下是 LogCat 对此事的看法。当我点击预览时,我得到了

01-10 19:28:52.691: INFO/ActivityManager(109): Starting: Intent { dat=content://gmail-ls/messages/xxxxxxx%40gmail.com/439/attachments/0.1/BEST/false cmp=com.google.android.gm/.ViewAttachmentActivity } from pid 19483

奇怪的是 Winamp 会自动打开,并且没有设置为默认值。我别无选择...

【问题讨论】:

  • 我唯一确定的是附件内容提供商不使用文件名,而是使用一些字母数字代码,因此 *.wav 过滤器不适用于此。应改为使用 mimetype。
  • 我已经有&lt;data android:mimeType="audio/wav" /&gt; 在那里,我应该有其他方法吗?
  • 不知道...我有这个用于 xml 的 &lt;data android:scheme="content" android:mimeType="text/xml"/&gt; 并且它有效。 (类别=默认,操作=视图)
  • 仍然没有运气,附件的唯一按钮是“预览”,它仍然直接进入 Winamp。
  • 你为什么不试试 android:host="gmail-ls"

标签: android android-intent email-attachments intentfilter


【解决方案1】:

audio/wav 替换为audio/* 使其工作,但这显然是不受欢迎的行为。

【讨论】:

  • 电子邮件中的实际 mimetype 是什么?我知道这取决于客户,也许它没有将其设置为audio/wav,而是设置为audio/x-wav
  • 它是audio/x-wav,感谢您的帮助。把它写成答案,以便我接受!
【解决方案2】:

电子邮件客户端似乎以任意方式为附件选择 mimetype,因此打开它们的意图过滤器必须考虑所有可能性。搜索互联网有助于找到所有可能的类型,如果不需要像 audio/* 这样的通配符(如 OP says),应该为每个类型添加一个 &lt;data/&gt; 过滤器。

无论如何,建议按照 mimetype 过滤作为首选,而不是按文件扩展名过滤(请参阅 android-dev ml 上的 this thread)。

(感谢弗莱德利)

【讨论】:

  • 为什么不直接使用 android:mimeType="*/*"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2015-10-23
  • 2015-10-13
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多