Android 在应用程序中打开自定义文件类型Gmail附件

Android 在应用程序中打开自定义文件类型Gmail附件,android,android-intent,gmail,Android,Android Intent,Gmail,我已经为此挣扎了好几天了 我正试图通过意向过滤器注册我的活动,以使用gmail打开特定的自定义文件类型 问题是无论我尝试什么,要么我没有打开文件的选项,要么任何文件类型的附件(包括我的)都有打开应用程序的选项 我认为问题在于gmail提供的URI中没有任何文件细节 有很多人问过同样的问题,但是他们的解决方案从来没有将意图过滤器仅限于自定义文件类型 我的Android清单中当前的意图过滤器如下所示 <intent-filter>

我已经为此挣扎了好几天了

我正试图通过意向过滤器注册我的活动,以使用gmail打开特定的自定义文件类型

问题是无论我尝试什么,要么我没有打开文件的选项,要么任何文件类型的附件(包括我的)都有打开应用程序的选项

我认为问题在于gmail提供的URI中没有任何文件细节

有很多人问过同样的问题,但是他们的解决方案从来没有将意图过滤器仅限于自定义文件类型

我的Android清单中当前的意图过滤器如下所示

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data
                    host="*"
                    android:mimeType="*/*"
                    android:pathPattern=".*\\.abc"
                    android:scheme="content" />
            </intent-filter>

重申一下,这个意向过滤器添加了一个选项,可以在我的应用程序中打开gmail的任何附件


任何帮助都将不胜感激

指向文件的
内容://
Uri
值上不一定有文件扩展名。顺便说一句,Gmail在他们的邮件中没有文件扩展名,因此它与您的
路径模式不匹配。另外,
host
缺少
android:
名称空间前缀


如果电子邮件将以不同的MIME类型发送给您的文件,请在
android:mimeType
中使用该类型,并删除剩余的
属性。如果您的文件不会以不同的MIME类型发送电子邮件,那么您可能运气不好。

我们希望将附件文件发送到mail…Hi Commonware。谢谢你的回复。我觉得有点奇怪,你不能声明你想在gmail中打开什么文件?我会遇到这个问题的只是gmail吗?@DiscoS2:问题是你试图根据文件扩展名建立关联。Android强调MIME类型,对文件扩展名做得很少。原则上,通过
ContentProvider
提供文件的任何类型的应用程序都可能会遇到这个问题。好吧,这很公平,如果我想从桌面客户端而不是我的应用程序发送文件,只是有点问题,因为我无法控制MIME类型。感谢您的帮助Commonware,您的书也很有帮助:0不幸的是,MIME类型是由发件人设置的,您不能指望它被正确设置。自定义MIME类型几乎总是这样(因为发送端不太可能有您的应用程序,甚至不可能是Android设备)。这意味着gmail附件依赖MIME类型并不是特别有用。在这里,您可以做的唯一一件事就是关联应用程序/八位字节流,但这也不是一种真正的用户体验。目前,这并不是一个真正可以解决的问题。