Android:使用自定义扩展程序打开文件,仅打开这些文件

时间:2013-09-19 11:52:45

标签: android gmail mime-types file-extension intentfilter

我想在我的应用中打开扩展名为.bslvl的文件。我使用了以下intent-filter:

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

问题是路径模式不起作用。现在,我的应用程序会自动打开具有未知扩展名的每个文件。 (例如.cfg .rdroid .rudi文件)

如果我更改了intent-filter中的内容,则不会使用我的应用程序查看.bslvl文件。

同样的问题是电子邮件附件。我使用了另一个intent-filter,因为gmail找不到我的应用程序作为.bslvl文件的查看器,我只将mimeType更改为

android:mimeType="application/octet-stream"

但是,现在gmail尝试查看具有未知ext的每个文件。用我的应用程序。

我做错了什么?

stackoverflow上的其他解决方案还没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

您尚未指定android:host属性。

根据intent-filter文档......

  

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

看起来你试图提供一个主机,但你忘了用android命名空间限定你的主机属性。

相关问题