gpt4 book ai didi

android - 无法以编程方式在android中发送带有多个附件的电子邮件

转载 作者:行者123 更新时间:2023-11-29 15:13:42 25 4
gpt4 key购买 nike

我无法使用 Intent 选择器在 Android 中发送包含多个附件的电子邮件。从选择器中选择 gmail 后,抛出 Unfortunately gmail has stopped 错误。我不知道我犯了什么错误。谁能帮帮我?

 final Intent ei = new Intent(Intent.ACTION_SEND_MULTIPLE);
ei.setType("plain/text");
ei.putExtra(Intent.EXTRA_EMAIL, new String[] {"ademo@gmail.com"});
ei.putExtra(Intent.EXTRA_SUBJECT, "SFC App Equiry");
ei.putExtra(android.content.Intent.EXTRA_TEXT,Html.fromHtml("<b>"+"Packing Date"+"</b>&nbsp;"+pdate+"<br><b>"+"Shifting Date"+"</b>&nbsp;"+sdate+"<br><b>"+"Delivery Date"+"</b>&nbsp;"+ddate+"<br><b>"+"Source city"+"</b>&nbsp;"+scity+"<br><b>"+"Destination City"+"</b>&nbsp;"+dcity+"<br><b>"+"Source Property Type"+"</b>&nbsp;"+stprop+"<br><b>"+"Destination Property Type"+"</b>&nbsp;"+dtprop));

ArrayList<Uri> uris = new ArrayList<Uri>();

//uris.parse("file://sdcard/Images/20140812_130215.jpg");
//uris.add("file://sdcard/Images/20140812_130227.jpg");

File fileIn = new File(ppath);
File fileIn1 = new File(ppath1);
File fileIn2 = new File(ppath2);
File fileIn3 = new File(ppath3);
File fileIn4 = new File(ppath4);
File fileIn5 = new File(ppath5);
File fileIn6 = new File(ppath6);

Uri u = Uri.fromFile(fileIn);
Uri u1 = Uri.fromFile(fileIn1);
Uri u2 = Uri.fromFile(fileIn2);
Uri u3 = Uri.fromFile(fileIn3);
Uri u4 = Uri.fromFile(fileIn4);
Uri u5 = Uri.fromFile(fileIn5);
Uri u6 = Uri.fromFile(fileIn6);

uris.add(u);
uris.add(u1);
uris.add(u2);
uris.add(u3);
uris.add(u4);
uris.add(u5);
uris.add(u6);



ei.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivityForResult(Intent.createChooser(ei, "Sending multiple attachment"), 12345);

我的堆栈跟踪是:

11-26 10:58:41.791: W/Bundle(19728): Key android.intent.extra.TEXT expected ArrayList<CharSequence> but value was a java.lang.String.  The default value <null> was returned.
11-26 10:58:41.801: W/Bundle(19728): Attempt to cast generated internal exception:
11-26 10:58:41.801: W/Bundle(19728): java.lang.ClassCastException: java.lang.String cannot be cast to java.util.ArrayList
11-26 10:58:41.801: W/Bundle(19728): at android.os.Bundle.getCharSequenceArrayList(Bundle.java:1367)
11-26 10:58:41.801: W/Bundle(19728): at android.content.Intent.getCharSequenceArrayListExtra(Intent.java:5265)
11-26 10:58:41.801: W/Bundle(19728): at android.content.Intent.migrateExtraStreamToClipData(Intent.java:7843)
11-26 10:58:41.801: W/Bundle(19728): at android.content.Intent.migrateExtraStreamToClipData(Intent.java:7810)
11-26 10:58:41.801: W/Bundle(19728): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1423)
11-26 10:58:41.801: W/Bundle(19728): at android.app.Activity.startActivityForResult(Activity.java:3547)
11-26 10:58:41.801: W/Bundle(19728): at android.app.Activity.startActivityForResult(Activity.java:3508)
11-26 10:58:41.801: W/Bundle(19728): at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:840)
11-26 10:58:41.801: W/Bundle(19728): at com.ipot.setringtone.MainActivity.onCreate(MainActivity.java:131)
11-26 10:58:41.801: W/Bundle(19728): at android.app.Activity.performCreate(Activity.java:5484)
11-26 10:58:41.801: W/Bundle(19728): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
11-26 10:58:41.801: W/Bundle(19728): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400)
11-26 10:58:41.801: W/Bundle(19728): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2498)
11-26 10:58:41.801: W/Bundle(19728): at android.app.ActivityThread.access$900(ActivityThread.java:179)
11-26 10:58:41.801: W/Bundle(19728): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
11-26 10:58:41.801: W/Bundle(19728): at android.os.Handler.dispatchMessage(Handler.java:102)
11-26 10:58:41.801: W/Bundle(19728): at android.os.Looper.loop(Looper.java:146)
11-26 10:58:41.801: W/Bundle(19728): at android.app.ActivityThread.main(ActivityThread.java:5641)
11-26 10:58:41.801: W/Bundle(19728): at java.lang.reflect.Method.invokeNative(Native Method)
11-26 10:58:41.801: W/Bundle(19728): at java.lang.reflect.Method.invoke(Method.java:515)
11-26 10:58:41.801: W/Bundle(19728): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1288)
11-26 10:58:41.801: W/Bundle(19728): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1104)
11-26 10:58:41.801: W/Bundle(19728): at dalvik.system.NativeStart.main(Native Method)
11-26 10:58:42.431: W/ResolverActivity(19728): mLaunchedFromPackage=com.ipot.setringtone
11-26 10:58:42.781: I/DVFSHelper(19728): DVFSHelper:: failed to load CFMS
11-26 10:58:42.781: I/DVFSHelper(19728): DVFSHelper:: failed to load CFMS
11-26 10:58:42.781: I/DVFSHelper(19728): DVFSHelper:: failed to load CFMS
11-26 10:58:42.781: I/DVFSHelper(19728): DVFSHelper:: failed to load CFMS
11-26 10:58:42.901: I/Choreographer(19728): Skipped 38 frames! The application may be doing too much work on its main thread.
11-26 10:58:43.001: D/OpenGLRenderer(19728): Enabling debug mode 0
11-26 10:58:47.641: D/AbsListView(19728): onDetachedFromWindow

最佳答案

您可以使用以下代码通过邮件发送多个附件:

public boolean sendEmailWithMultipleAttachments(Context context,
String[] emailTo, String[] emailCC, String[] emailBCC,
String subject, String emailBody, List filePaths) throws ActivityNotFoundException {

final Intent emailIntent =
new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailTo);
emailIntent.putExtra(android.content.Intent.EXTRA_CC, emailCC);
emailIntent.putExtra(android.content.Intent.EXTRA_BCC, emailBCC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
ArrayList<String> extra_text = new ArrayList<String>();
extra_text.add("Your text here");
ei.putStringArrayListExtra(Intent.EXTRA_TEXT, extra_text);

if (filePaths != null) {
// has to be an ArrayList
ArrayList uris = new ArrayList();
// convert from paths to Android friendly Parcelable Uri's
for (String file : filePaths) {
File fileIn = new File(file);
if (fileIn.exists()) {
Uri u = Uri.fromFile(fileIn);
uris.add(u);
}
}
emailIntent.putParcelableArrayListExtra
(Intent.EXTRA_STREAM, uris);
}
context.startActivity(Intent.createChooser(emailIntent, "Sent mail"));
return true;
}

关于android - 无法以编程方式在android中发送带有多个附件的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com