如何确保电子邮件应用程序将使用我的应用程序打开文件?

时间:2012-07-25 10:10:11

标签: android android-intent intentfilter

我目前正在构建一个应用程序,允许您从电子邮件加载文件并使用电子邮件导出创建的文件。扩展名为.lq。我目前正在使用此意图过滤器,但是当我尝试打开扩展名为.lq的内容时,我在标准电子邮件应用中反复收到错误“此附件无法显示”:

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

我尝试了许多不同的解决方案,但是没有一个能够奏效。

2 个答案:

答案 0 :(得分:3)

您可以使用Intent Intercept应用程序分析您的邮件应用程序发送的Intent,并了解您需要创建的intent过滤器。

从gmail应用程序中,我得到以下意图:

  

动作:android.intent.action.VIEW

     

数据:内容://gmail-ls/myemail@gmail.com/messages/471/attachements/0.1/BEST/false

     

URI:content://gmail-ls/myemail@gmail.com/messages/471/attachements/0.1/BEST/false

     

输入:image / png

所以问题是您的.lq不是标准扩展名,并且您不能依赖文件名以.lq结尾,因为它使用没有扩展名的内部名称。

您可以使用意图过滤器来捕获内容:// * URI。

答案 1 :(得分:-1)

我也有这个问题。尝试完全删除mimetype属性。