我能够发送带有单个附件的电子邮件。当我切换为发送带有多个附件的电子邮件时,发送邮件代码不起作用。这是我的代码:
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)
答案 0 :(得分:1)
删除:
intent.putExtra(Intent.EXTRA_TEXT, message);
如果您使用EXTRA_STREAM
,则不应同时使用EXTRA_TEXT
。而且,对于ACTION_SEND_MULTIPLE
,EXTRA_TEXT
必须是字符串的List
,而不是单个字符串。
也:
您的代码将在Android 7.0及更高版本上崩溃,因为您使用的是Uri.forFile()
。使用FileProvider
使您的内容可用于其他应用程序。
没有电子邮件应用程序必须支持ACTION_SEND_MULTIPLE
其他应用程序可以支持ACTION_SEND_MULTIPLE
,而不仅仅是电子邮件应用程序