10

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

我正在尝试通过意图过滤器注册我的活动,以使用 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 打开任何附件的选项。

任何帮助将非常感激

4

1 回答 1

6

content:// Uri指向文件的值不一定有文件扩展名。AFAIK,Gmail 不包含他们的文件扩展名,因此它与您的pathPattern. 此外,host缺少android:命名空间前缀。

如果电子邮件将使用您的文件的不同 MIME 类型发送,请使用该类型android:mimeType并删除其余<data>属性。如果电子邮件不会以您的文件的不同 MIME 类型发送,那么您就不走运了。

于 2013-01-10T12:38:55.440 回答