2011-11-11 18 views

Respuesta

2
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); 
+0

siento no uno, sino que trate de usar éste –

+0

ClienteDeCorreo intención = new Intent (Intent.ACTION_VIEW); mailClient.setClassName ("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); startActivity (mailClient); –

+0

tnx por su respuesta. Me acabo de dar cuenta de que estoy tratando de llegar a la aplicación de correo de HTC, no a la aplicación de correo predeterminada. ¿Hay alguna manera de abrir ese en la bandeja de entrada? o puede mostrarme dónde puedo encontrar esa información? –

6

Sí, es posible abrir el buzón de correo electrónico predeterminado de Android.
Usar este código:

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


Este código funciona, usted tiene que configurar su correo predeterminado dispositivo Android por primera vez. Si ya configuró su correo, funciona bien. De lo contrario, fuerza cierra con un NullPointerException.

+1

son las tapas realmente necesarias? – copolii

+2

sabes que cuando alguien da una respuesta intenta averiguar si está bien o mal en el desbordamiento de la pila en lugar de buscar tapones o pequeños, si quieres tomar ese tipo de diversión prueba con otros sitios divertidos, no este tipo de sitio de programación –

+2

Es INCORRECTO : La solución asume que el usuario tiene una aplicación con el paquete "com.android.email" y que es la aplicación de correo electrónico predeterminada que utilizan. Si tengo, por ejemplo, correo K9 y lo uso como mi cliente predeterminado, no me es útil abrir el cliente de correo en stock. La intención no era burlarse, hay algo llamado "etiqueta de internet". Cuando escribe mayúsculas, se considera que es GRITO y grosero. Aparte de eso, hace que el texto se vea desagradable y difícil de leer. Hay una razón por la cual hay mayúsculas y minúsculas. El texto correctamente formateado es mucho más legible que TODOS LOS MAYÚSCULAS. – copolii

0

Puede abrir el cliente de correo electrónico predeterminado de Android utilizando la siguiente:

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

esto compone un nuevo correo electrónico, la pregunta original era simplemente abrir la aplicación de correo electrónico predeterminada. –

1

Este código trabajó para mí. Se abre un selector con todas las aplicaciones de correo electrónico registradas en el dispositivo y directamente a la bandeja de entrada:

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

Esto se bloquea cuando no se puede resolver el intento de lanzamiento. ¡Necesita otro control para eso! –

9

Si el objetivo es abrir la aplicación de correo electrónico predeterminada para ver la bandeja de entrada, y luego clave es añadir una categoría de intención y utilizar el ACTION_MAIN la intención de este modo:

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

+0

manera fácil de iniciar solo la aplicación de correo electrónico. ¡Muchas gracias! – TUSHAR

+0

¿cómo puedo imitar esto en reaccionar nativo? – jasan

+0

@jasan - necesitaría crear un componente personalizado para activar esta lógica desde js land –

Cuestiones relacionadas