单击按钮打开电子邮件客户端

Rah*_*rma 43 email android

我正在设计一个应用程序,我需要在单击按钮时打开电子邮件客户端.应使用预定义的主题和"到"地址打开电子邮件客户端.有没有办法达到这个目的?如果可能,请提供解决方案和代码示例...

yan*_*nko 75

像这样:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "some@email.address" });
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(intent, ""));
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用IntentFactory.getSendEmailIntent(String mailTo,String mailCC,String subject,CharSequence body,File attachment).

  • 如今,这并不可靠——它允许用户选择 Facebook Messenger,而不是 GMail。请参阅:/sf/answers/1051550741/(线程中接受的答案也是错误的,请注意) (5认同)

mix*_*xel 32

要仅显示电子邮件客户端,请使用以下代

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:recipient@example.com?subject=" + subject + "&body=" + body);
intent.setData(data);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

如果您已经选择了默认电子邮件客户端,那么它将启动它.否则,它将显示可用电子邮件客户端的列表.


Dan*_*ami 7

如果屏幕上有电子邮件地址,则可以在 xml 中使用,如下所示:

android:autoLink="email"
Run Code Online (Sandbox Code Playgroud)


Raj*_*wal 5

好吧 - 现在上述答案在 2020 年不再适用于我。我在谷歌官方开发者网站上发现了一些对我有用的内容。

 Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
Run Code Online (Sandbox Code Playgroud)