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

Sam*_*ley 8 java email android android-intent

在启动电子邮件意图后,如何确认电子邮件已发送或已将错误重新发送到调用的活动中?

        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
Run Code Online (Sandbox Code Playgroud)

也许启动activityForResult?但是如果有的话,我应该期待什么结果?

Fel*_*lix 12

这真的取决于你的推出的应用程序Intent.它可能是Gmail应用程序,可能是电子邮件应用程序,也可能是任何第三方应用程序.因此,没有100%可靠的方法来确定用户是否实际按下了Send.

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

  • 当你按下取消时,Gmail应用程序也会为resultCode返回RESULT_OK:/ (5认同)