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