Android Gmail新版本中打开应用附件URI的问题

4

我在我的清单文件中有以下的意图过滤器。这段代码在Android 4.2.2上的Nexus 7上一直很好用,直到两天前Google更新了他们的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个回答

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上也可以工作,但我不确定它是否向后兼容旧的Android设备。如果你对此有任何结论,请发表!根据这里的一些回复,它可能不起作用:

Intent Filter to capture all sharing Intents


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接