新的Gmail应用版本的android gmail打开应用附件URI问题

时间:2013-03-21 07:57:16

标签: android gmail attachment intentfilter

我的Manifest中有以下intent过滤器。 此代码曾经在Android版4.2.2的Nexus 7上运行良好,直到2天前谷歌对其Gmail应用程序进行了更新。我的应用程序不再显示在可以打开此类附件的应用程序列表中。如果我卸载更新,它会恢复... 知道我能做些什么让它再次运作?

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data
        android:host="*"
        android:mimeType="application/octet-stream"
        android:pathPattern=".*.grb"
        android:scheme="content" />
</intent-filter>

1 个答案:

答案 0 :(得分:2)

我到处寻找解决方案,不幸的是,对于这个版本的gmail,唯一的区别是mime类型和方案。原因是Gmail Uris现在采用以下格式:

content://gmail-ls/email@example.com/messages/1162/attachments/0.1/BEST/false

显然这里没有文件名或扩展名,因此您的选项都涉及使过滤器更通用 - 您只能删除过滤器的pathPattern部分,匹配host = *,scheme = content,mimeType = application / octet的所有结果-stream

或者使您的过滤器更通用。您可以将每个mimetype与以下内容匹配:

<intent-filter>
    actions
    categories
    <data android:mimeType="application/*" />
    <data android:mimeType="audio/*" />
    <data android:mimeType="image/*" />
    <data android:mimeType="message/*" />
    <data android:mimeType="multipart/*" />
    <data android:mimeType="text/*" />
    <data android:mimeType="video/*" />
</intent-filter>

注意我发现android:mimeType="*/*"似乎也适用于ICS,但我不确定这是否与旧机器人向后兼容。如果您对此有任何结论,请发布!这里的一些回答可能无法判断:

Intent Filter to capture all sharing Intents