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

时间:2012-09-05 06:05:00

标签: 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:"));   

显示选项

enter image description here

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

enter image description here

2 个答案:

答案 0 :(得分: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);

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

Linkify这样做。如果您愿意,请查看it's source code

答案 1 :(得分:8)

您可以使用以下代码打开您想要的任何意图,例如gmail,facebook,email等。在我的代码中使用的类型中的简单传递“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)));
        }
}