Android发送带有多个附件的电子邮件

时间:2019-08-18 19:48:04

标签: android email email-attachments send

我能够发送带有单个附件的电子邮件。当我切换为发送带有多个附件的电子邮件时,发送邮件代码不起作用。这是我的代码:

Width: 1500, Height: 500, Bit-Depth: 8, Color-Type: 3 (Indexed-colour), Type: PNG8

我收到以下错误消息。 2019-08-18 11:19:56.736 2979-2979 / com.xyz.testemail W / Bundle:键android.intent.extra.TEXT预期使用ArrayList,但值是java.lang.String。返回默认值。 2019-08-18 11:19:56.741 2979-2979 / com.xyz.testemail W / Bundle:尝试强制转换生成的内部异常:     java.lang.ClassCastException:无法将java.lang.String强制转换为java.util.ArrayList         在android.os.BaseBundle.getCharSequenceArrayList(BaseBundle.java:1265)         在android.os.Bundle.getCharSequenceArrayList(Bundle.java:1075)         在android.content.Intent.getCharSequenceArrayListExtra(Intent.java:7919)         在android.content.Intent.migrateExtraStreamToClipData(Intent.java:10774)         在android.app.Instrumentation.execStartActivity(Instrumentation.java:1617)         在android.app.Activity.startActivityForResult(Activity.java:4621)         在android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)         在android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)         在android.app.Activity.startActivityForResult(Activity.java:4579)         在android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)         在android.app.Activity.startActivity(Activity.java:4940)         在android.app.Activity.startActivity(Activity.java:4908)         在com.xyz.testemail.MainActivity.ShareViaEmail(MainActivity.java:508)

1 个答案:

答案 0 :(得分:1)

删除:

intent.putExtra(Intent.EXTRA_TEXT, message);

如果您使用EXTRA_STREAM,则不应同时使用EXTRA_TEXT。而且,对于ACTION_SEND_MULTIPLEEXTRA_TEXT必须是字符串的List,而不是单个字符串。

也:

  • 您的代码将在Android 7.0及更高版本上崩溃,因为您使用的是Uri.forFile()。使用FileProvider使您的内容可用于其他应用程序。

  • 没有电子邮件应用程序必须支持ACTION_SEND_MULTIPLE

  • 其他应用程序可以支持ACTION_SEND_MULTIPLE,而不仅仅是电子邮件应用程序