Come faccio a creare un intento di lanciare qualsiasi applicazione e-mail?
-
01-10-2019 - |
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?
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