【发布时间】:2019-12-24 03:35:35
【问题描述】:
我能够发送带有单个附件的电子邮件。当我切换到发送带有多个附件的电子邮件时,发送邮件代码不起作用。这是我的代码:
private void ShareViaEmail(String csvFilePath, String ibiFilePath, String message, String mailTo) {
try {
//File Root= Environment.getExternalStorageDirectory();
//String fileLocation=Root.getAbsolutePath() + folderName + "/" + fileName;
//Intent intent = new Intent(Intent.ACTION_SENDTO);
//attach multiple file
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
//String message="CSV file is " + csvFilePath + ".";
intent.putExtra(Intent.EXTRA_SUBJECT, "Report ");
//intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+csvFilePath));
Log.d(LOG_TAG,"ibiFilePath : "+ibiFilePath );
//attached multiple file
//followed by:
ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.fromFile(new File(csvFilePath)));
uris.add(Uri.fromFile(new File(ibiFilePath)));
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.setData(Uri.parse("mailto:" + mailTo));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} catch(Exception e) {
Log.d(LOG_TAG,"exception raises during sending mail"+e );
}
}
我收到以下错误消息。 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)
【问题讨论】:
标签: android email email-attachments send