personal entrada bandeja android email android-intent inbox

personal - ¿Cómo abrir la bandeja de entrada de correo predeterminada desde el código de Android?



bandeja de entrada gmail (6)

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);

Estoy intentando vincular un botón a la aplicación de correo. No para enviar correos, solo para abrir la bandeja de entrada.

¿Debo hacer esto con la Intent intent = new Intent(...) ?

Si es así, ¿qué debería ser entre ( ) ?


Sí, es posible abrir la bandeja de entrada de correo electrónico predeterminada de Android.
Usa este código:

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


Este código funciona, primero debes configurar el correo predeterminado de tu dispositivo Android. Si ya configuró su correo, funciona bien. De lo contrario, fuerza se cierra con una NullPointerException .


Puede abrir el cliente de correo electrónico predeterminado de Android usando esto:

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);


Este código funcionó para mí. Abre un selector con todas las aplicaciones de correo electrónico registradas en el dispositivo y directamente a Inbox:

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); }


Si el objetivo es abrir la aplicación de correo electrónico predeterminada para ver la bandeja de entrada, la clave es agregar una categoría de intención y usar el intento ACTION_MAIN de la siguiente manera:

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