我制作了自己的文件类型(.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="*/*"/>
但仍然没有快乐:' - (
答案 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。