Android发送附带附件的电子邮件

时间:2015-06-18 03:05:11

标签: android email attachment

我需要通过我的应用程序的电子邮件发送文件(带有自定义扩展名.qmd的sqlite文件)。该文件存储在我的应用程序数据中,我使用内容提供程序公开它并向电子邮件意图提供Uri。华为g750设备上的Android电子邮件客户端打开包含正确的TO,主题和正文的撰写邮件,并显示一个“您的文件无法附加到您的电子邮件中”的祝酒词。

我已经在网上呆了一段时间(差不多5个小时),尝试了每种可能的内容类型和组合的组合。额外的,我有一个有趣的行为:

  1. 文件正在HTC One上的Android电子邮件客户端上成功附加。
  2. 文件已在Gmail应用中成功附加。在两台设备上(HTC和华为)
  3. 当我将文件扩展名更改为其中一个公共扩展名(即.txt,.zip,.xml,.mdb,......等等)时,它已成功附加。
  4. 当我在撰写屏幕中单击“附加”并从文件管理器中选择文件时,它已成功附加。
  5. 以下是我使用的代码(我尝试了太多组合,但这是最简单的,它也在做同样的事情),希望有人知道发生了什么。

    Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
    emailIntent.setData(Uri.parse("mailto:"));
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"xxx@gmail.com"});
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject text");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "body text");
    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(FileProvider.CONTENT_URI + new File(file).getName()));
    startActivity(Intent.createChooser(emailIntent, "Send by email ..."));
    

0 个答案:

没有答案