2011-11-11 15 views

risposta

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

dispiace non quello, ma provare a utilizzare questo –

+0

Mailclient Intent = new Intent (Intent.ACTION_VIEW); mailClient.setClassName ("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); startActivity (mailClient); –

+0

tnx per la vostra risposta. Mi sono appena reso conto che sto cercando di raggiungere l'app di posta HTC, non l'app di posta predefinita. C'è un modo per aprirlo nella posta in arrivo? o puoi mostrarmi dove posso trovare quell'informazione? –

6

Sì, è possibile aprire la casella di posta di default di Android.
di questo codice:

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


Questo codice funziona, è necessario configurare la posta dispositivo predefinito di Android prima. Se hai già configurato la tua posta funziona perfettamente. In caso contrario, forza si chiude con un NullPointerException.

+1

i tappi sono davvero necessari? – copolii

+2

sai che quando qualcuno dà una risposta cerca di scoprire il suo giusto o sbagliato nello stack overflow invece di cercare tappi o piccoli, se vuoi prendere quel tipo di divertimento prova un altro sito divertente non questo tipo di sito di programmazione –

+2

È SBAGLIATO : La soluzione presuppone che l'utente abbia un'app con il pacchetto "com.android.email" e che sia l'app di posta elettronica predefinita che utilizza. Se ho, ad esempio, la posta K9 e la utilizzo come client predefinito, l'apertura del client di posta elettronica non mi è utile. L'intento non era quello di prendere in giro, c'è questa cosa chiamata "etichetta internet". Quando digiti tutto maiuscolo è considerato GRIDARE e maleducato. A parte questo, rende il tuo testo sgradevole e difficile da leggere. C'è una ragione per cui ci sono lettere maiuscole e minuscole. Il testo correttamente formattato è molto più leggibile di TUTTI I MAIUSCOLI. – copolii

0

È possibile aprire Android client di posta elettronica predefinito utilizzando questo:

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

questo compone una nuova email, la domanda iniziale era quella di aprire l'app email predefinita. –

1

Questo codice ha funzionato per me. Si apre un selettore con tutte le applicazioni e-mail registrati al dispositivo e direttamente a Posta in arrivo:

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

Arresta in modo anomalo quando non è possibile risolvere l'intento di lancio: è necessario un altro controllo! –

9

Se l'obiettivo è quello di aprire l'applicazione di posta elettronica predefinito per visualizzare la posta in arrivo, quindi il tasto è quello di aggiungere una categoria intento e utilizzare l'ACTION_MAIN intento in questo 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

modo semplice per lanciare solo l'app email ... Grazie mille !! – TUSHAR

+0

come potrei imitare questo in risposta nativo? – jasan

+0

@jasan - avresti bisogno di creare un componente personalizzato per attivare questa logica da js land –