Android应用开发中,很多情况下免不了要调用手机上的邮件类应用,实现邮件发送的功能,这一般是通过调用系统已有的Intent来实现的。 直接跳转:
private void openMail() {
Uri uri = Uri.parse("mailto:" + "xxxx@qq.com");
List<ResolveInfo> packageInfos = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_SENDTO, uri), 0);
List<String> tempPkgNameList = new ArrayList<>();
List<Intent> emailIntents = new ArrayList<>();
for (ResolveInfo info : packageInfos) {
String pkgName = info.activityInfo.packageName;
if (!tempPkgNameList.contains(pkgName)) {
tempPkgNameList.add(pkgName);
Intent intent = getPackageManager().getLaunchIntentForPackage(pkgName);
emailIntents.add(intent);
}
}
if (!emailIntents.isEmpty()) {
String[] email = {"XXXXXX@qq.co"};
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra(Intent.EXTRA_CC, email); // 抄送人
intent.putExtra(Intent.EXTRA_SUBJECT, "这是邮件的主题部分"); // 主题
intent.putExtra(Intent.EXTRA_TEXT, "这是邮件的正文部分"); // 正文
Intent chooserIntent = Intent.createChooser(intent, ResUtils.getString(R.string.select_mail_tips));
if (chooserIntent != null) {
startActivity(chooserIntent);
} else {
showToast(R.string.no_mail_app_tips);
}
} else {
showToast(R.string.no_mail_app_tips);
}
}