Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 发送带有操作的文本\u发送\u多个_Android_Email - Fatal编程技术网

Android 发送带有操作的文本\u发送\u多个

Android 发送带有操作的文本\u发送\u多个,android,email,Android,Email,我正在开发一个Android应用程序,其中我正在向电子邮件客户端应用程序发送多个附件。 要发送多个附件,我正在使用操作\u发送\u多个意图 代码片段: Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); emailIntent.setData(Uri.parse("mailto:")); emailIntent.setType("text/plain"); em

我正在开发一个Android应用程序,其中我正在向电子邮件客户端应用程序发送多个附件。 要发送多个附件,我正在使用操作\u发送\u多个意图

代码片段:

        Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
        emailIntent.setData(Uri.parse("mailto:"));
        emailIntent.setType("text/plain");
        emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Test"); // email subject

        ArrayList<CharSequence> msg = new ArrayList<CharSequence>();
        msg.add(mail_body); // email body
        emailIntent.putCharSequenceArrayListExtra(Intent.EXTRA_TEXT, msg);

        ArrayList<Uri> uris = new ArrayList<Uri>(); //attachments
        uris.add(Uri.fromFile(logFile));
        uris.add(Uri.fromFile(oldLogFile));
        emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

this.startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), ErrorCodes.MAIL_ACTIVITY);
Intent emailIntent=新意图(Intent.ACTION\u SEND\u MULTIPLE);
setData(Uri.parse(“mailto:”);
emailIntent.setType(“文本/普通”);
emailIntent.putExtra(Intent.EXTRA_电子邮件,收件人);
emailIntent.putExtra(Intent.EXTRA_主题,“测试”);//电子邮件主题
ArrayList msg=新的ArrayList();
msg.add(邮件正文);//电子邮件正文
emailIntent.putCharSequenceArrayListExtra(Intent.EXTRA_TEXT,msg);
ArrayList URI=新的ArrayList()//附件
add(Uri.fromFile(logFile));
add(Uri.fromFile(oldLogFile));
emailIntent.putParcelableArrayListExtra(Intent.EXTRA\u流,URI);
this.startActivityForResult(Intent.createChooser(emailIntent,“发送邮件…”)、errorcode.mail\u活动);
上述代码的输出:

        Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
        emailIntent.setData(Uri.parse("mailto:"));
        emailIntent.setType("text/plain");
        emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Test"); // email subject

        ArrayList<CharSequence> msg = new ArrayList<CharSequence>();
        msg.add(mail_body); // email body
        emailIntent.putCharSequenceArrayListExtra(Intent.EXTRA_TEXT, msg);

        ArrayList<Uri> uris = new ArrayList<Uri>(); //attachments
        uris.add(Uri.fromFile(logFile));
        uris.add(Uri.fromFile(oldLogFile));
        emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

this.startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), ErrorCodes.MAIL_ACTIVITY);
在Gmail应用程序中,存在附件,但缺少电子邮件正文


如何解决此问题?我将非常感谢您对这个主题的任何建议和想法。

首先,
操作发送\u MULTIPLE
不使用
Uri
,就像您在调用
setData()
时使用的那样

其次,
ACTION\u SEND\u MULTIPLE
使用
EXTRA\u TEXT
EXTRA\u STREAM
,而不是两者都使用。看见这很可能是你困难的根源——你正在尝试做一些没有记录的事情


第三,
Uri.fromFile()。您需要使用
文件提供程序
或类似的解决方案。

请编辑您的问题并提供答案。另外,请记住,
ACTION\u SEND
/
ACTION\u SEND\u MULTIPLE
是一个请求,不同的电子邮件客户端可能会以不同的方式处理此类
意图
选项(包括可能存在错误)。感谢您的回复。我将添加代码段。请检查代码段。今天,我检查了Whatsapp应用程序,该应用程序可以发送带有多个附件和电子邮件正文的电子邮件。你知道这是怎么可能的吗?即使Android官方文件说这是不可能的。@NimeshChandramaniya:一些电子邮件应用程序可能支持它。没有电子邮件应用程序必须支持它。而且它没有被记录下来,这正是支持它所需要的。可能您正在尝试的电子邮件应用程序需要一个
字符串,而不是
数组列表。在大约20亿台安卓设备和大约10000台设备型号上,有几十台(如果不是几百台的话)电子邮件客户端。他们的行为将大不相同。