2012-12-21 2 views
3

Je souhaite envoyer un e-mail depuis mon application. J'ai donc utilisé le code suivant.ACTION_SENDTO ne fonctionne pas

String uriText = "[email protected]" + "?subject=" + URLEncoder.encode("Subject") + "&body=" + URLEncoder.encode("some text here"); 
Uri uri = Uri.parse(uriText); 
Intent sendIntent = new Intent(Intent.ACTION_SENDTO); 
sendIntent.setData(uri); 
startActivity(Intent.createChooser(sendIntent, "Send Email")); 

J'ai configuré mes deux applications Gmail et électroniques. J'ai testé sur mon Nexus S (JellyBean) et HTC T-Mobile G2 (GingerBread). Les deux montrent "Aucune application ne peut effectuer cette action".

Est-ce que quelqu'un a une idée de ce qui ne va pas ici?

Répondre

9

Si vous utilisez ACTION_SENDTO, le Uri doit utiliser le schéma mailto: ou smsto:. Donc, essayez mailto:[email protected].

+0

@KarthikPalanivelu: Je ne comprends pas. Si "l'activité normale" est le sélecteur, cela devrait disparaître tout seul. Si "l'activité normale" est votre activité, vous pouvez "finir()" dessus pour le faire disparaître. Si "l'activité normale" est quelque chose d'autre, alors il n'y a probablement rien que vous puissiez faire à ce sujet. – CommonsWare

+0

Merci .. Cela fonctionne parfaitement. –

+0

Suis vraiment désolé. C'était une simple erreur de mon côté. Je dint avoir une déclaration de rupture où je devais. Ainsi, il a exécuté le code suivant et une autre activité ACTION_SEND a été lancée. J'ai remarqué immédiatement ainsi supprimé le commentaire tout de suite. Merci pour votre réponse :) –

7

si vous utilisez Intent.setData pour l'envoi d'e-mail puis modifiez votre code comme:

String uriText = "mailto:[email protected]" + 
       "?subject=" + URLEncoder.encode("Subject") + 
       "&body=" + URLEncoder.encode("some text here"); 
Uri uri = Uri.parse(uriText); 
Intent sendIntent = new Intent(Intent.ACTION_SENDTO); 
sendIntent.setData(uri); 
startActivity(Intent.createChooser(sendIntent, "Send Email")); 
+0

Merci pour le code :) –