Domanda

ho trovato vari argomenti qui e altrove sulla creazione di un intento per l'invio di e-mail e che sembra essere piuttosto semplice. Sto cercando l'intenzione di lanciare un qualsiasi client di posta elettronica che l'utente potrebbe avere.

Ecco il codice che ho visto per l'invio di una e-mail ( Inviato appena per riferimento, questo non serve i miei bisogni come io non voglio inviare un nuovo messaggio ):

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
i.putExtra(Intent.EXTRA_TEXT   , "Body of the message"); 

Ecco il codice che ho messo insieme in modo specifico il lancio del client Gmail nome del pacchetto:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm");
startActivity(intent);

Il codice sopra funziona, ma non è flessibile in quanto l'utente non stia utilizzando Gmail, ma l'altra applicazione incorporata e-mail o un'applicazione 3rd party e-mail. Sto cercando un intento che avrebbe portato il selettore in questo caso in modo che l'utente può decidere quali app per lancio per leggere e-mail.

Qualcuno sa come eseguire questa?

È stato utile?

Soluzione

  

Qualcuno sa come fare   questo?

Non esiste Intent -. Si può dire questo esaminando il manifesto per l'applicazione e-mail

L'unica cosa che puoi fare è costruire da soli una lista di client di posta elettronica che si desidera collegare e utilizzare il codice PackageManager si mostra sopra per ciascuno di essi.

Altri suggerimenti

Può un URL mailto essere utilizzato in qualche modo per raggiungere questo obiettivo? --Modificare-- Sono stato in grado di compiere questa operazione utilizzando il seguente codice di esempio:

mt = MailTo.parse("mailto:yourname@gmail.com");
sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()});
sendIntent.putExtra(Intent.EXTRA_TEXT, "");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Enter a subject");
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send a Message:"));

Un altro approccio potrebbe essere Intent.createChooser (); e lasciare che l'utente di scegliere la giusta applicazione.

A proposito L'elenco potrebbe contenere non solo e-mail applicazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top