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