我想用我的应用在电子邮件中打开音频附件。目前我的意图过滤器是这样的:
<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会自动打开并且未设置为默认值,这有多么奇怪。我别无选择......
答案 0 :(得分:2)
用audio/wav
替换audio/*
会使其有效,但这显然是不受欢迎的行为。
答案 1 :(得分:0)
电子邮件客户端似乎以任意方式为附件选择mimetypes,因此打开它们的intent过滤器必须考虑所有可能性。搜索互联网有助于找到所有可能的类型,如果不需要<data/>
这样的通配符(OP says),则应为每个类型添加audio/*
过滤器。
无论如何,除了通过文件扩展名过滤之外,建议使用mimetype过滤作为首选(请参阅android-dev ml上的this thread)。
(感谢弗雷德利)