Java 琐碎:获取android中发送的电子邮件的确认

Java 琐碎:获取android中发送的电子邮件的确认,java,android,email,android-intent,Java,Android,Email,Android Intent,在启动电子邮件意图后,我如何确认电子邮件已发送或在调用它的活动中出现错误 Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("png/image"); String subject = "Email Subject"; String body = "Message Body"; emailIntent.putExt

在启动电子邮件意图后,我如何确认电子邮件已发送或在调用它的活动中出现错误

        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

也许开始活动以获得结果?但是如果有的话,我应该期待什么样的结果呢?

查看我的问题和回答:

这实际上取决于你的
意图所启动的应用程序。它可以是Gmail应用程序,也可以是电子邮件应用程序,也可以是任何第三方应用程序。因此,没有100%可靠的方法来确定用户是否实际按下了发送键


你唯一能做的就是检查Gmail和电子邮件应用程序在通过
startActivityForResult
调用时是否返回任何相关信息,并依赖于此。但请注意,这是不可靠的,因为可能还有第三方应用程序。此外,由于这些应用程序没有公开指定它们返回的内容,它们可能会在某个时刻更改这些内容而不另行通知。

您无法从电子邮件中获得任何有用的结果代码。onActivityResult始终在发送开始或取消发送时返回0

另外,如果附加文件,则在读取这些文件之前会调用onActivityResult。

您不能这样做

操作\u发送没有任何输出,因此您始终会获得默认值,即结果\u取消


此外,您无法在返回意向数据时检查它,因为无论是mail send还是discard,它都始终为空。

看起来无法返回resultCode,感谢您的帮助。当您按cancel时,Gmail应用程序也会返回resultCode的RESULT\u OK:/