8
votes

Trivial: Get Confirmation de l'e-mail envoyé dans Android

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


0 commentaires

3 Réponses :


12
votes

Cela dépend vraiment de l'application lancée par votre Intention . 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 ou non.

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 startactivityforresult 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.


2 commentaires

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: /



3
votes

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é.

Shazey Si vous attachez des fichiers, onActivityResult est appelé avant que ces fichiers soient lus.


0 commentaires

2
votes

Vous ne pouvez pas faire cela.

action_send n'a pas de sortie à la suite que vous obtenez toujours la valeur par défaut qui est résultat_canceled.

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.


0 commentaires