【使用Intent.ACTION_SENDTO方式】
核心代码如下:
[java] view plaincopyprint?
// 必须明确使用mailto前缀来修饰邮件地址,如果使用
// intent.putExtra(Intent.EXTRA_EMAIL, email),结果将匹配不到任何应用
Uri uri = Uri.parse("mailto:3802**92@qq.com");
String[] email = {"3802**92@qq.com"};
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra(Intent.EXTRA_CC, email); // 抄送人
intent.putExtra(Intent.EXTRA_SUBJECT, "这是邮件的主题部分"); // 主题
intent.putExtra(Intent.EXTRA_TEXT, "这是邮件的正文部分"); // 正文
startActivity(Intent.createChooser(intent, "请选择邮件类应用"));
效果图如下所示:
当手机上只有一个匹配的邮件类应用时,系统将不会弹出ChooserActivity,供用户从候选的应用中挑选一个,而是直接跳转到匹配的那个应用去。这时查看Eclipse的logcat可以发现,出现如下异常信息:
但是,当系统中存在多于一个的匹配应用时,会弹出ChooserActivity,让用户选择一个应用发送邮件,这时查看logcat不会出现之前的异常。这又是为何呢?