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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top