首页 > 解决方案 > 仅显示电子邮件程序时发送电子邮件

问题描述

我有多个关于发送电子邮件的帖子,甚至在 Android 文档中。它似乎不起作用。我想基本上允许用户选择他们的电子邮件程序来发送电子邮件。这是代码

Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
                emailIntent.setData(Uri.parse("mailto:"));
                emailIntent.setType("*/*");
                emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"xyz@gmail.com"});
                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
                emailIntent.putExtra(Intent.EXTRA_TEXT   , "msg");
                startActivity(Intent.createChooser(emailIntent, "Send mail..."));

然而它什么都不做(即没有活动)

我做错了什么?如果我使用 Action.Send,那么它会显示所有社交媒体平台,包括 facebook 和 whatsapp ..etc

谢谢

标签: android

解决方案


这是取自Adroid 开发者网站并结合这个问题

public void composeEmail(String[] addresses, String subject, String msessage) {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("application/octet-stream");
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    intent.putExtra(Intent.EXTRA_TEXT, message);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

请注意,我做了一些更改以匹配问题的大小写。


推荐阅读