如何从android代码打开默认邮件收件箱?

我试图将一个button链接到邮件应用程序。 不发送邮件,而只是打开收件箱

我应该用Intent intent = new Intent(...)做到这一点吗?

如果是这样, ( )之间应该是什么?

如果目标是打开默认的电子邮件应用程序来查看收件箱,那么关键是添加一个意图类别,并使用ACTION_MAIN意图,如下所示:

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_APP_EMAIL); getActivity().startActivity(intent); 

https://developer.android.com/reference/android/content/Intent.html#CATEGORY_APP_EMAIL

是的,可以打开Android默认电子邮件收件箱。
使用此代码:

 Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.email"); startActivity(intent); 

此代码有效,您必须先configuration您的Android设备默认邮件。 如果你已经configuration你的邮件,它工作正常。 否则,强制closuresNullPointerException

  You can use this but it is for gmail only Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("plain/text"); startActivity(emailIntent); 

此代码为我工作。 它打开一个select器,所有电子邮件应用程序注册到设备,直接到收件箱:

 Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:")); PackageManager pm = getPackageManager(); List<ResolveInfo> resInfo = pm.queryIntentActivities(emailIntent, 0); if (resInfo.size() > 0) { ResolveInfo ri = resInfo.get(0); // First create an intent with only the package name of the first registered email app // and build a picked based on it Intent intentChooser = pm.getLaunchIntentForPackage(ri.activityInfo.packageName); Intent openInChooser = Intent.createChooser(intentChooser, getString(R.string.user_reg_email_client_chooser_title)); // Then create a list of LabeledIntent for the rest of the registered email apps List<LabeledIntent> intentList = new ArrayList<LabeledIntent>(); for (int i = 1; i < resInfo.size(); i++) { // Extract the label and repackage it in a LabeledIntent ri = resInfo.get(i); String packageName = ri.activityInfo.packageName; Intent intent = pm.getLaunchIntentForPackage(packageName); intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon)); } LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]); // Add the rest of the email apps to the picker selection openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents); startActivity(openInChooser); } 

不幸的是,它看起来并不乐观。 这已经被问过

如何将电子邮件客户端直接启动到收件箱视图?

你可以在撰写模式下打开电子邮件客户端,但你似乎已经知道了。

您可以使用以下方式打开Android默认电子邮件客户端:

 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/plain"); emailIntent.setClassName("com.android.email", "com.android.email.activity.Welcome"); emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(emailIntent);