android发送带文件的电子邮件

时间:2014-12-11 14:56:06

标签: android file email

我需要发送包含多个文件的电子邮件(仅使用电子邮件客户端)。我怎样才能做到这一点? 当我尝试使用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操作。

1 个答案:

答案 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..."));
祝你好运。