Android - 如何直接打开电子邮件客户端

nar*_*esh 7 android email-client

我想打开默认的电子邮件客户端,而不是显示选项.我试过,但我没有得到,请任何人都可以帮助我.

我使用了以下代码:

  final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

        emailIntent.setType("text/html");
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My Allergy Journal");       
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<small>"+sb.toString()+"</small>"));                                 
        startActivity(Intent.createChooser(emailIntent, "Email:"));   
Run Code Online (Sandbox Code Playgroud)

它显示了选项

在此输入图像描述

但我想直接打开默认电子邮件客户端.

在此输入图像描述

Vin*_*hwa 15

以格式构造字符串 String URI="mailto:?subject=" + subject + "&body=" + body;

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse(URI);
intent.setData(data);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这将打开用户选择的默认电子邮件程序.

Linkify这样做.如果您愿意,请查看它的源代码.


And*_*Dev 8

您可以使用以下代码打开您想要的任何意图,例如Gmail,Facebook,电子邮件等.我的代码中使用的类型中的简单通过"gmail"如果要打开gmail,如果要打开则传递"face" Facebook的

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
intent.setType("text/html");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0);

if (!resInfo.isEmpty())
{
    for (ResolveInfo info : resInfo) 
    {
    if (info.activityInfo.packageName.toLowerCase().contains(type) || info.activityInfo.name.toLowerCase().contains(type)) 
    {
            intent.putExtra(android.content.Intent.EXTRA_TEXT, htmlBody);
            intent.setPackage(info.activityInfo.packageName);   
            startActivity(Intent.createChooser(intent, getResources().getString(R.string.share_send_text)));
        }
} 
Run Code Online (Sandbox Code Playgroud)