我执行以下操作:
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { receiver });
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); // uris is a array list!
然后我尝试添加以下内容:
intent.putExtra(Intent.EXTRA_TEXT, "text");
这会添加一条日志行,提示文本不是数组列表。虽然有效,但电子邮件没有正文
或者我尝试了以下操作:
ArrayList<String> texts = new ArrayList();
for (int i = 0; i < uris.size(); i++)
texts.add("Test");
intent.putParcelableArrayListExtra(Intent.EXTRA_TEXT, texts);
这会删除日志警告,但电子邮件仍然没有正文。
问题
如何将多个文件附加到邮件并用一些文本预填充正文?
最佳答案
How can append multiple files to the mail AND prefill the body with some text?
一般来说,你不需要。
引用 the documentation for ACTION_SEND_MULTIPLE
:
get*ArrayListExtra can have either a EXTRA_TEXT or EXTRA_STREAM field, containing the data to be sent
(强调)
您正试图同时包含这两者,这超出了 Intent
规范的范围。
用户可能会为您的ACTION_SEND_MULTIPLE
Intent
选择许多应用。每个应用程序如何处理您的 Intent
取决于这些应用程序的开发人员。可能的候选人是:
- 如您所见,忽略
EXTRA_TEXT
- 忽略
EXTRA_STREAM
- 同时兼顾
- 严重崩溃
ACTION_SEND
也是如此(您可以有 EXTRA_TEXT
或 EXTRA_STREAM
,但不能同时有)。
关于android - 通过电子邮件发送多个附件并预填电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042593/