4

我的清单中有以下意图过滤器。这段代码曾经在装有 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>
4

1 回答 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,但我不确定这是否与旧机器人向后兼容。如果您对此有任何结论,请发布!从这里的一些回复来看,它可能不起作用:

意图过滤器捕获所有共享意图

于 2013-06-27T18:48:11.440 回答