Datafiletype(自定义)不会在我的应用程序中打开

时间:2011-11-21 12:46:31

标签: android android-manifest file-type

我制作了自己的文件类型(.mmd)。 这个文件类型我已经保存了一些数据,并希望在选择这种类型的文件以便在我的应用程序中打开它时,在名为openMeasurement的子活动中。

我的清单已被更改,因此活动具有以下属性,这是我从另一个线程获得的。但它似乎还不够

<activity android:name="OpenMeasurement">
        <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=".*\\.mmd" />
            <data android:scheme="https" android:host="*"
                android:pathPattern=".*\\.mmd" />
            <data android:scheme="content" android:host="*"
                android:pathPattern=".*\\.mmd" />
            <data android:scheme="file" android:host="*"
                android:pathPattern=".*\\.mmd" />
        </intent-filter>
    </activity>

我做错了什么\忘记任何有帮助的人? - 提前谢谢。

编辑1:
可能是因为我只在我的真实手机上进行调试,因此没有安装并获得所有特定要求,真的不应该是这样的,如果你这么想的话,我想对它做一些评论。 ------ Edit3 ---即使处于“调试模式”,它似乎也会在手机上注册“打开文件类型”,因为我可以将其注册为.pdf文件

编辑2: 好吧,我试图将其拆分,删除HTTP方案,因为我认为它们是不必要的。 现在代码如下所示:

    <activity android:name="OpenMeasurement">
        <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="content" />
            <data android:host="*" />
            <data android:pathPattern=".*\\.mmd" />
        </intent-filter>
        <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="file" />
            <data android:host="*" />
            <data android:pathPattern=".*\\.mmd" />
        </intent-filter>
    </activity>

当我选择我的文件时(使用“我的文件”),它仍然无法打开,也无法做出选择

还尝试在pathpattern中使用双转义符(“。* \\。mmd”)也没有帮助。

编辑4: 还尝试添加:

<data android:mimetype="*/*"/>

但仍然没有快乐:' - (

2 个答案:

答案 0 :(得分:1)

在一般情况下,这是不可行的,因为意图机制使用MIME类型,您只能使用预定义的MIME类型。

请参阅http://code.google.com/p/android/issues/detail?id=11112

所以:你不能让它在本地文件浏览器中工作,比如ASTRO,因为它可能像ACTION_VIEW intent for a file with unknown MimeType中描述的那样工作 - 即使用内置的MimeTypeMap。

但是,如果文件在网络上,则可以拦截Web浏览器URL打开机制,如http://groups.google.com/group/android-developers/browse_thread/thread/d79bfa05528cbbee#

中所述

答案 1 :(得分:0)

如果您使用双重解决方法,这实际上是可行的。你只对双十字交叉行进行双重交叉,它应该允许你使用该文件类型,但只有它是标记40类型的angelo,并且你总是可以通过简单的下载升级公共标记35。