【问题标题】:Allow Application to Open a Custom Zip File From Gmail允许应用程序从 Gmail 打开自定义 Zip 文件
【发布时间】:2012-10-29 00:30:47
【问题描述】:

我的问题

我有一个扩展名为 .trap 的自定义 zip 文件,我通过电子邮件发送给自己,并在我的 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. 如何指定我的应用程序能够处理这种文件类型的打开。

提前致谢

【问题讨论】:

    标签: android android-file


    【解决方案1】:

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

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

         <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>
    

    我希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      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,如果您认为您还将通过网络浏览器下载application/trap 文件,则可以在其中添加DEFAULT

      【讨论】:

      • “仅借助应用程序”是指 Gmail 吗?
      • @DiscoS2:不,我的意思是一个应用程序有一个 &lt;intent-filter&gt; 声称可以按 MIME 类型处理 ZIP 文件。
      【解决方案3】:

      由于 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 2013-03-09
        相关资源
        最近更新 更多