如何等待电子邮件意图完成并获得结果?

Nic*_*las 9 android email-client android-intent

在我的Android应用程序中,我可以使用以下方法以编程方式打开包含To,Subject和Message的默认电子邮件编辑器:

Intent emailIntent=new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, toemail);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, body);
emailIntent.setType("text/plain");
emailIntent.setClassName("com.android.email", "com.android.email.activity.MessageCompose");
startActivity(emailIntent);
Run Code Online (Sandbox Code Playgroud)

这很好用,但是我需要在我的应用中等待,直到用户完成电子邮件屏幕,并且还知道电子邮件是发送还是丢弃.

有人知道怎么做吗?

Ebo*_*ike 1

这会很棘手。电子邮件发送没有标准化的返回值,并且根据用户的设置,可以使用电子邮件应用程序、Gmail 应用程序或众多第三方电子邮件应用程序之一发送邮件。他们很可能在处理结束电子邮件的方式上都有所不同。

至于您的一般问题,您可以用来startActivityForResult()启动一个活动,然后在完成后继续,并返回一个指示事情进展情况的值。但是,我很确定大多数电子邮件应用程序不会在这里为您提供正确的结果。

我很想说,您可能需要自己处理电子邮件的发送,即编写一个简单的函数来连接到 SMTP 并将邮件发送出去。我确信有很多图书馆可以处理所有繁重的工作。

(当然,您可以startActivityForResult首先尝试 - 也许最常见的电子邮件应用程序确实会给您返回值。)


归档时间:

查看次数:

11196 次

最近记录:

12 年,10 月 前