neoakira Posted May 19, 2009 Share Posted May 19, 2009 (edited) Voici comment envoyer un email via gmail à partir de votre application : Intent i = new Intent(Intent.ACTION_SEND); i.setType("message/rfc822"); i.putExtra(Intent.EXTRA_SUBJECT, "Sujet"); i.putExtra(Intent.EXTRA_TEXT, "bla bla bla, merci neoakira"); startActivity(Intent.createChooser(i, "Titre:")); ou un mail avec une pièce jointe... Intent i = new Intent(Intent.ACTION_SEND); i.setType("audio/mp3"); i.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3"); i.putExtra(Intent.EXTRA_SUBJECT, "Sujet"); i.putExtra(Intent.EXTRA_TEXT, "bla bla bla, merci neoakira"); startActivity(Intent.createChooser(i, "Titre:")); file:///sdcard/mysong.mp3 correspond à un Uri créé depuis un fichier : http://developer.android.com/reference/android/net/Uri.html#fromFile(java.io.File) Edited May 19, 2009 by neoakira Quote Link to comment Share on other sites More sharing options...
Olivier Posted January 14, 2010 Share Posted January 14, 2010 J'ai un problème pour mettre un link vers le market dans le mail (market:// ...). En passant par un spannablestring, le lien n'dxg pas clicable dans gmail android, ni dans gmail (webmail classique) mais il est clicable dans thunderbird... Une idée ? Application FreeboxMobile FreeboxMobile est une application Open Source (gratuite) qui te permet d\'accéder aux services de ta Freebox à partir de ton smartphone Android.\n\nTu peux la télécharger (à partir de ton smartphone) à en cliquant sur le lien ci-dessous.\n\nA plus tard !\n\n Telecharger FreeboxMobile market://search/?q=Freebox private void shareApp() { SpannableString ss = new SpannableString(getResources().getString(R.string.mail_link)); ss.setSpan(new URLSpan(getResources().getString(R.string.app_url)), 0, ss.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); SpannableStringBuilder ssb = new SpannableStringBuilder(getResources().getString(R.string.mail_text1)).append(' ').append(ss);//.append(' ').append(getResources().getString(R.string.mail_text2)); Intent i = new Intent(Intent.ACTION_SEND) .putExtra(Intent.EXTRA_TEXT, ssb) .putExtra(Intent.EXTRA_SUBJECT, getString(R.string.mail_subject)) .setType("message/rfc822"); startActivity(Intent.createChooser(i, "Titre:")); } Merci ! Quote Link to comment Share on other sites More sharing options...
neoakira Posted January 14, 2010 Author Share Posted January 14, 2010 oui tout en bas de cette page http://developer.android.com/intl/fr/guide/publishing/publishing.html fait un lien http:// Quote Link to comment Share on other sites More sharing options...
Olivier Posted January 14, 2010 Share Posted January 14, 2010 J'hallucine ! Je l'avais lu en plus cette page. Mais le texte " you can't currently load the URIs in a web browser, either on a desktop machine or on the device." m'avait induit en erreur... Merci en tous cas, ca fonctionne... :) Quote Link to comment Share on other sites More sharing options...
Leimi Posted January 21, 2010 Share Posted January 21, 2010 Merci, marche impec :) Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 21, 2010 Share Posted January 21, 2010 (edited) bonjour, je viens de tenter l'envoi de mail à partir de l'émulateur et ça fonctionne pas (peut être est-ce normal car sur l'émulateur y a pas de compte gmail...) En tout cas voici mon code: final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("message/rfc822"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"moi@gmail.com"}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "xxx - Bug report"); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Sender: " + mailSended + " " + textSended); Log.d(Variables.TAG_APPLI, "Appel Activity"); Activity activity = new Activity(); Log.d(Variables.TAG_APPLI, "Starting Activity..."); activity.startActivity(Intent.createChooser(emailIntent, "Envoi email…")); je n'ai aucun message d'erreur, de plus j'arrête pas de me battre pour essayer d'avoir des traces. Le LogCat dès fois il affiche des trucs dès fois non, je sais pas pourquoi. Donc c'est galère pour savoir quels sont les problèmes. Je vois dans les messages précédents que vous avez réussi... y a un truc de différent avec ce que j'ai fait ? Ma classe étends "Dialog", pour "Activity" je fais un import. Edited January 21, 2010 by cefabien Quote Link to comment Share on other sites More sharing options...
Olivier Posted January 21, 2010 Share Posted January 21, 2010 L'application gmail n'est pas présente sur l'émulateur, ca ne peut donc pas fonctionner... Il faut tester/développer sur un device pour ca. Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 21, 2010 Share Posted January 21, 2010 (edited) oui effectivement si j'avais un temps soit peu réfléchi :p merci :) Je vais tester de ce pas... Edit: Alors je viens de ré-essayer et j'ai l'écran "Fermeture soudaine", pas de messages d'erreur dans les consoles, ça ne fonctionne pas. Dans ma classe suivante qui étends "Dialog" j'ai le code qui appel: SendMail sendMail = new SendMail(); sendMail.callSendMail("mailSended", "textSended"); et ma classe SendMail est la suivante: import android.app.Activity; import android.content.Intent; public class SendMail extends Activity { public void callSendMail(String mailSended, String textSended) { Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("message/rfc822"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"***@gmail.com"}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "***France - Bug report"); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Sender: " + mailSended + " " + textSended); try { startActivity(Intent.createChooser(emailIntent, "Envoi email…")); } catch (Exception e) { Log.d(Variables.TAG_APPLI, "Erreur"); e.printStackTrace(); } } } est-ce que vous voyez un truc qui cloche ? Merci Edit again: J'ai l'erreur suivante lancé sur le device, au démarrage de mon appli: Error: threa attach failed Error: threa attach failed Et quand je tente l'envoi du mail j'ai une erreur dans la console LogCat mais pas sur le device : NullPointerException at android.app.Activity.startActivityForResult(Activity.java:2693) at android.app.Activity.startActivity(Activity.java:2798) ... Je sais ce qu'est un nullPointerException mais là je vois pas ce qu'il manque... Edited January 21, 2010 by cefabien Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 21, 2010 Share Posted January 21, 2010 Bon ben là ça me casse grave les c..... , partout je trouve à peu près le même tuto, pour tout le monde ça marche, mais dans mon cas ça ne fonctionne pas, je sais pas pourquoi.... Quote Link to comment Share on other sites More sharing options...
Profete162 Posted January 21, 2010 Share Posted January 21, 2010 faudrait que tu affiches les éléments un par un pour voir lequel est null... C'est ce que je ferais, mais pas facile effectivement! Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 21, 2010 Share Posted January 21, 2010 oui j'ai bien essayé de le faire mais le problème c'est que j'appelle uniquement la méthode startActivity(.....) et le null je le reçois sur l'appel interne de startActivityForResult(...) auquel je n'ai pas accès en debug. J'ai pensai que le problème venait du manifest mais apparemment non. Je vais aller prendre ma pagaie et ramer ;) Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 21, 2010 Share Posted January 21, 2010 Bordel, je viens de comprendre !! Dans cette classe je n'avais plus mon context d'où l'impossiblité de fonctionner avec startActivity(...... du coup, lors de l'instanciation de ma classe, je lui fait passer mon context pour lancer l'Activity: context.startActivity(...... et là ça fonctionne, mais du coup ce n'est pas vraiment le fonctionnement que j'espérer. Ca m'ouvre une liste d'Activity à choisir pour envoyer mon message, mais moi, ce que je veux c'est que le message soit directement envoyé par mail sans devoir ouvrir une autre appli.... C'est possible ça ? Merci pour votre aide sur mon problème précédent :) Quote Link to comment Share on other sites More sharing options...
Leimi Posted January 25, 2010 Share Posted January 25, 2010 (edited) Hello, je voulais savoir, comment faire marcher un code similaire pour un archos 5 IT ? Sur le Hero le lien marche très bien (ça ouvre l'appli gmail) mais sur l'archos 5 IT, même si j'ai configuré un compte de messagerie sur l'appli E-mail, un message d'erreur s'affiche en disant qu'"aucune application ne peut effectuer cette action".. Merci o/ EDIT : ok, je sais pas trop si c'est la bonne façon de faire mais j'ai modifié i.setType("message/rfc822"); en i.setType("text/plain"); Et au clic le système propose de choisir entre les applis gérant les e-mails. Edited January 25, 2010 by Leimi Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 25, 2010 Share Posted January 25, 2010 Salut, ben à priori à ce qui été dit dans le code Google, que les 2 fonctionnaient ("message/rfc822" et "text/plain"). Mais peut être qu'effectivement y a une différence avec l'archos 5 IT. Quote Link to comment Share on other sites More sharing options...
neoakira Posted January 26, 2010 Author Share Posted January 26, 2010 faut regarder le Manifest de l'appli E-mail pour savoir à quels Intents elle réagi... http://android.git.kernel.org/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.