应用程序的注册文件类型无法正常工作

时间:2011-09-21 15:02:42

标签: android

我正在为我的应用使用以下意图过滤器。

<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:mimeType="*/*" />
        <data android:pathPattern=".*\\.etxt" />
</intent-filter>

但令我惊讶的是,该应用程序现在也想打开其他类型,如apk文件。我的错是什么?

4 个答案:

答案 0 :(得分:0)

尝试

 <data android:pathPattern=".\\*.etxt" />

不是<data android:pathPattern=".*\\.etxt" />

如果有效,请告诉我

答案 1 :(得分:0)

我发现了这个

“仅当还为其指定了方案和主机属性时,这些属性才有意义 过滤器。“

所以你应该有方案和主机,如果你想使用android:pathPattern

它在官方文档上 http://developer.android.com/guide/topics/manifest/data-element.html

请注意: 如果没有为intent过滤器指定方案,则忽略所有其他URI属性

所以你必须添加方案和主机

答案 2 :(得分:0)

我想我找到了解决方案。至少,它现在适用于Dropbox。

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

答案 3 :(得分:0)

这已经是一段时间了,但我仍然没有适当的解决方案。以下答案中的解决方案适用于Dropbox,但不会在Google邮件或任何文件管理器中打开应用程序。是的,路径模式是正确的。

我只尝试使用mimeType text / *,没有别的。除非您使用扩展名* .txt命名文件,否则这将无效。我不能这样,因为在Windows中有一个对应物,它为文件注册* .etxt。

然后我尝试了另外的方案&#34;内容&#34;。如果我选择一般的mimeType,这适用于Google邮件,但如果用户点击状态栏中的新邮件图标,则会提供该应用。所以它太笼统了。

简而言之,我找不到解决这个问题的方法。它似乎取决于方式,文件管理器和邮件程序形成一个意图,这是不可预测的。我猜,这只是Android系统中的遗漏。