0

我的问题

我有一个带有扩展名的自定义 zip 文件.trap,我通过电子邮件发送给自己并在我的 Android 手机上的 Gmail 帐户中接收。

我需要能够说我的应用程序可以打开这个文件并相应地处理它。我已经看过了,那里有很多变化,但似乎没有一个对我有用。我也确实看到 Android 不允许打开.zip文件。

这是我添加到我的 android 清单中的意图过滤器。

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" />
            <data android:host="*" />
            <data android:pathPattern=".*\\.trap" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" />
            <data android:host="*" />
            <data android:mimeType="application/trap" />
        </intent-filter>
        <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:pathPattern=".*\\.trap" />
        </intent-filter>

注意:对于 MIME 类型,我也尝试过*/*哪些不起作用,只是/阻止应用程序启动。

我的问题

  1. android可以从电子邮件中打开zip文件吗?
  2. 如何指定我的应用程序能够处理此文件类型的打开。

提前致谢

4

3 回答 3

2

其他答案都是很好的答案,可能对某人有用。他们肯定帮助我更多地理解它,所以向他们竖起大拇指。

然而,对我有用的方法如下所示。

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

我希望这可以帮助别人。

于 2012-11-09T12:06:02.580 回答
1

因为 GMail 充当内容提供者,所以您需要添加content方案,如下所示:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="application/*" 
          host="*" 
          android:pathPattern=".*.trap" 
          android:scheme="content" />
</intent-filter>
于 2012-11-08T19:00:28.007 回答
1

android可以从电子邮件中打开zip文件吗?

只有在应用程序的帮助下。

如何指定我的应用程序能够处理此文件类型的打开。

这可能有效:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="application/trap" />
    </intent-filter>

这假定发送此消息的电子邮件客户端使用您的自定义 MIME 类型(顺便说一句,它可能应该在vnd.命名空间中)。

您现有的过滤器假定附件是文件或 HTTP 请求,而 Gmail 附件通过 ContentProvider(content:// 方案)呈现给您。

BROWSABLE如果您愿意,也可以在其中使用DEFAULT,如果您认为您还将application/trap通过 Web 浏览器下载文件。

于 2012-11-08T18:58:41.823 回答