neoakira Posté(e) 19 mai 2009 Share Posté(e) 19 mai 2009 (modifié) 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) Modifié 19 mai 2009 par neoakira Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Posté(e) 14 janvier 2010 Share Posté(e) 14 janvier 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 ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 14 janvier 2010 Auteur Share Posté(e) 14 janvier 2010 oui tout en bas de cette page http://developer.android.com/intl/fr/guide/publishing/publishing.html fait un lien http:// Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Posté(e) 14 janvier 2010 Share Posté(e) 14 janvier 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... :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leimi Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 2010 Merci, marche impec :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 2010 (modifié) 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. Modifié 21 janvier 2010 par cefabien Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 2010 (modifié) 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... Modifié 21 janvier 2010 par cefabien Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 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.... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 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! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 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 ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 21 janvier 2010 Share Posté(e) 21 janvier 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 :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leimi Posté(e) 25 janvier 2010 Share Posté(e) 25 janvier 2010 (modifié) 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. Modifié 25 janvier 2010 par Leimi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cefabien Posté(e) 25 janvier 2010 Share Posté(e) 25 janvier 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 26 janvier 2010 Auteur Share Posté(e) 26 janvier 2010 faut regarder le Manifest de l'appli E-mail pour savoir à quels Intents elle réagi... http://android.git.kernel.org/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.