7

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

我使用了以下代码:

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

它显示选项

在此处输入图像描述

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

在此处输入图像描述

4

2 回答 2

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这样做。如果您愿意,请查看它的源代码。

于 2012-09-05T06:11:59.403 回答
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)));
        }
} 
于 2012-09-05T06:17:04.397 回答