【问题标题】:how to open an attachment with my application from within the email app? (mime type, intent filter ...)如何在电子邮件应用程序中使用我的应用程序打开附件? (mime 类型,意图过滤器...)
【发布时间】:2012-09-07 13:19:42
【问题描述】:

这可能看起来是重复的,但我想我已经尝试了大多数发布的解决方案,但都没有成功。

我正在编写一个应用程序,它有时会通过电子邮件发送带有自定义扩展名 (.xyz) 的文件

然后我需要从电子邮件应用程序中打开这些文件,但我无法使其工作。

在阅读了本网站和其他网站上的大量帖子后,我想出了一个意图过滤器,它允许我从文件资源管理器(但不能从电子邮件应用程序)打开这些文件。

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

然后我尝试在网络浏览器中打开电子邮件和附件,但没有成功。 (文件已下载,但后来我无法打开它)。 我在 LogCat 中遇到了这个错误

    09-14 12:30:50.516: D/DownloadManager(2341): android.content.ActivityNotFoundException:
    No Activity found to handle Intent 
{ act=android.intent.action.VIEW 
dat=file:///mnt/sdcard/download/samplefile.xyz 
typ=message/rfc822 flg=0x10000000 }

虽然我觉得对文件使用 rfc822 mime 类型很奇怪,但我更改了意图过滤器并添加了

android:mimeType="message/rfc822"

到数据部分。

然后我可以在从浏览器下载文件后打开文件,但我无法再从文件资源管理器打开文件(这有点道理)。

即使添加 android:mimeType="/" 也有相同的效果。 (从 ASTRO 文件资源管理器中看到的文件的 mime 类型为空)。

但我真正需要的是从电子邮件应用程序中打开文件,而这些方法都没有帮助。打开邮件时,我什至无法点击附件。

我可能需要创建一个自定义的 mime 类型,但我无法找到如何去做。

那么,问题是,我需要做什么才能使用我的应用程序打开电子邮件附件(来自内置电子邮件应用程序)?

  • 创建 MIME 类型? (如果有,怎么做?)
  • 创建内容提供者?
  • 两者都有? (再次,如何?)

【问题讨论】:

    标签: android mime-types email-attachments intentfilter


    【解决方案1】:

    以防万一,有人遇到与我相同的问题,我终于能够让它工作。 我遇到的问题是,在发送带有附件的电子邮件时,我使用的是 mime 类型“message/rfc822”。将其更改为“image/xyz”就可以了,当然还可以使用将 mime 类型设置为“*/*”的意图过滤器。

    发送电子邮件时有一个不同的行为,即您可以为每个可以发送的应用程序选择一个选择器,不仅是邮件应用程序(彩信、WhatsApp、蓝牙等),但在我的情况下它很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2013-10-03
      • 2013-04-08
      • 1970-01-01
      • 2011-01-03
      • 2011-08-16
      • 2010-12-20
      相关资源
      最近更新 更多