我需要发送包含多个文件的电子邮件(仅使用电子邮件客户端)。我怎样才能做到这一点? 当我尝试使用ACTION_SEND_MULTIPLE时,我无法仅获取电子邮件客户端,但是当我使用ACTION_SENDTO时,我无法附加文件。我的代码
Log.d(TAG, "Selected documents count = " + documents.size());
if (documents.size() == 0) {
Toast.makeText(this, "Nothing selected", Toast.LENGTH_LONG).show();
return;
}
Intent sendMailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
sendMailIntent.setType("message/rfc822");
ArrayList<Uri> uris = new ArrayList<Uri>();
for (Document document : documents) {
Log.d(TAG, "FilePath = " + document.getLocalPdfFile());
uris.add(Uri.parse("file://" + document.getLocalPdfFile()));
}
sendMailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(sendMailIntent);
此代码工作正常。它发送文件。问题是如何向用户仅显示电子邮件客户端,因此许多其他程序可以处理ACTION_SEND_MULTIPLE操作。
答案 0 :(得分:-1)
我发现的问题有时gmail会很好地接收附件,但不是原生电子邮件客户端,有时则反过来。
尝试ACTION_SEND,您可能在选择器中有一些额外的选项,但我发现它更可靠。
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
//....same as in your code.
startActivity(Intent.createChooser(emailIntent, "Send email..."));
祝你好运。