Comment puis-je créer une intention de lancer une application e-mail?
-
01-10-2019 - |
Question
J'ai trouvé divers sujets ici et ailleurs sur la création de l'intention d'envoyer un courrier électronique et qui semble être assez simple. Je suis à la recherche d'une intention de lancer simplement un client e-mail l'utilisateur peut avoir.
Voici le code que je l'ai vu pour envoyer un e-mail ( posté juste pour la référence, cela ne sert pas à mes besoins que je ne veux pas envoyer un nouveau message ):
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");
Voici le code que je mis en place pour le lancement spécifiquement le client Gmail par le nom du package:
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm");
startActivity(intent);
Le code ci-dessus fonctionne mais n'est pas flexible en ce qu'un utilisateur ne comptez pas utiliser Gmail mais l'autre application intégrée e-mail ou une 3ème partie app e-mail. Je suis à la recherche d'une intention qui apporterait le chooser dans ce cas afin que l'utilisateur peut décider quelle application de lancement pour lire des e-mail.
Quelqu'un sait comment y parvenir?
La solution
Quelqu'un sait comment accomplir cela?
Il n'y a pas Intent
-., Vous pouvez le dire en examinant le manifeste pour l'application e-mail
La seule chose que vous pouvez faire est de construire vous-même une liste de clients de messagerie que vous souhaitez créer un lien vers et en utilisant ce code PackageManager
vous montrer ci-dessus pour chacun.
Autres conseils
Peut une URL mailto être utilisé d'une certaine façon d'y arriver? --Éditer-- Je suis en mesure d'accomplir cela en utilisant l'exemple de code suivant:
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:"));
Une autre approche pourrait être Intent.createChooser (); et laisser l'utilisateur de choisir la bonne application.
BTW La liste pourrait contenir non seulement des applications email