电子邮件附件的意图过滤器

时间:2011-01-10 18:13:17

标签: android android-intent email-attachments intentfilter

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

<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打开(显然第三方应用程序有办法)。我无法找到我应该添加的内容,但是,有没有人有任何想法?

修改

这就是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会自动打开并且未设置为默认值,这有多么奇怪。我别无选择......

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

无论如何,除了通过文件扩展名过滤之外,建议使用mimetype过滤作为首选(请参阅android-dev ml上的this thread)。

(感谢弗雷德利)