Après avoir démarré une intention de courrier électronique Comment puis-je obtenir une confirmation que l'e-mail a été envoyé ou que vous avez eu une erreur dans l'activité qui a été appelée?
Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("png/image"); String subject = "Email Subject"; String body = "Message Body"; emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(Intent.EXTRA_TEXT, body); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/" + IMAGE_FILENAME)); startActivity(Intent.createChooser(emailIntent, "Send email...")); //Here I need to do something on a successfully sent email
3 Réponses :
Cela dépend vraiment de l'application lancée par votre La seule chose que vous pouvez faire est de vérifier si les applications Gmail et Email renvoient quoi que ce soit pertinent lorsqu'il est appelé via Intention Code>. Il pourrait s'agir de l'application Gmail, il pourrait s'agir de l'application de messagerie, ou une application tierce pourrait être une application tierce. Pour cette raison, il n'existe pas de moyen fiable de 100% de déterminer si l'utilisateur enfoncé réellement envoyer kbd> ou non. P>
startactivityforresult code> et comptez sur cela. Mais méfiez-vous que cela n'est pas fiable car, encore une fois, il pourrait y avoir des applications tierces. De plus, étant donné que ces applications ne spécifient pas publiquement ce qu'ils reviennent, ils pourraient changer cela à un moment donné sans préavis. P>
On dirait qu'il n'y a aucun moyen d'obtenir un code de résultat à l'époque, merci pour votre aide.
L'application Gmail renvoie Résultat_ok pour le résultatcode également lorsque vous appuyez sur Annuler: /
Vous ne pouvez obtenir aucun résultat utile d'une intention de courrier électronique. OnActivityResult Return toujours 0 dès que l'envoi de démarrages ou d'envoi est annulé. P>
Shazey Si vous attachez des fichiers, onActivityResult est appelé avant que ces fichiers soient lus. p>
Vous ne pouvez pas faire cela. P>
action_send n'a pas de sortie à la suite que vous obtenez toujours la valeur par défaut qui est résultat_canceled. P>
Aussi, vous ne pouvez pas vérifier avec des données d'intention revenir en arrière car il est toujours null, envoyez-le ou jetez-le. P>