注册活动打开任何文件,一定的延伸 [英] Register Activity To Open Any File With Certain Extension

查看:137
本文介绍了注册活动打开任何文件,一定的延伸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直对被设置为打开一个文件具有特定扩展名的应用程序。它的工作原理与Gmail一些时间(有些文件打开,而有些则没有),我可以打开文件浏览器中的文件。

I've been working on an application which is set to open a file with a specific extension. It works some times with Gmail (some files open, while some don't), and I can open a file from the file explorer.

我无法打开来自电子邮件应用程序的文件在手机上却和我说,一些文件没有从我的应用程序和一些呢!

I can't open the files from the Email application on the phone however and as I say, some files do not open from the Gmail application with my application and some do!

下面是我的code。

             <intent-filter > <!-- Solution from @richardlegget on this question http://stackoverflow.com/questions/8148629/intent-filter-to-download-attachment-from-gmail-apps-on-android -->
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="application/octet-stream" android:pathPattern=".*\\.myextension" />
             </intent-filter>
             <intent-filter >
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.myextension" />
             </intent-filter>

我的提问

有一条毯子一套注册包含Android设备?

Is there a blanket set of intent-filters that register a specific activity with any file containing the desired file extension from anywhere on the Android device?

推荐答案

不知道你为什么要使用单独的意图过滤器时,你可以使用单个标签做到这一点。

Not sure why are you using separate intent-filters when you can do it using a single tag.

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http" android:host="*"
                android:pathPattern=".*\\.myextension" />
            <data android:scheme="https" android:host="*"
                android:pathPattern=".*\\.myextension" />
            <data android:scheme="content" android:host="*"
                android:pathPattern=".*\\.myextension" />
            <data android:scheme="file" android:host="*"
                android:pathPattern=".*\\.myextension" />
        </intent-filter>

有可能是一个权限问题。即如果你的活动设置单独的任务来打开,那么将无法访问创建/文件被其他应用程序所拥有。 You'l必须设置意图的标志,使得它在同一个应用程序中打开。

There might be a permissions problem. I.E If your activity is set to open in separate task, then cannot access files created/owned by other applications. You'l have to set intent flags such that it opens in the same application.

这篇关于注册活动打开任何文件,一定的延伸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆