android - 通过电子邮件发送多个附件并预填电子邮件

标签 android email android-intent attachment

我执行以下操作:

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_TEXTEXTRA_STREAM,但不能同时有)。

关于android - 通过电子邮件发送多个附件并预填电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042593/

相关文章:

java - 函数If/else无法正确运行_app android使用加速度计

email - 在 CrafterCMS 中,如何正确设置邮件服务器?

email - Applescript 将 Outlook 电子邮件移动到子文件夹

java - 在 Android 上使用 REST 服务,最简单的方法?

java - Arduino/Android远程控制

email - 内容 ID 格式

android - 使用 Intent 打开文件夹

Android:如何从 TextView 链接本地 HTML 文件

android - 没有前景的应用程序间通信的最佳方法?

java - 潜在的空指针访问: The variable stream may be null at this location