Android 发送带有操作的文本\u发送\u多个
我正在开发一个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
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台设备型号上,有几十台(如果不是几百台的话)电子邮件客户端。他们的行为将大不相同。