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
Lamentablemente, no parece prometedor. Esto se ha preguntado antes
¿Cómo abro el cliente de correo electrónico directamente a la vista de la bandeja de entrada?
puede abrir el cliente de correo electrónico en modo redactar, pero parece que ya lo sabe.