用于启动Gmail应用的Intent URI

是否有任何URI可以指向Android中的GMAIL应用程序并帮助我启动它?

Solutions Collecting From Web of "用于启动Gmail应用的Intent URI"

我在我的应用中使用它:

Intent mailClient = new Intent(Intent.ACTION_VIEW); mailClient.setClassName("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); startActivity(mailClient); 

这只适用于gmail应用程序。

 Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.setType("plain/text"); sendIntent.setData(Uri.parse("test@gmail.com")); sendIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"); sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "test@gmail.com" }); sendIntent.putExtra(Intent.EXTRA_SUBJECT, "test"); sendIntent.putExtra(Intent.EXTRA_TEXT, "hello. this is a message sent from my demo app :-)"); startActivity(sendIntent); 

用于大量电子邮件:

 sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "test@gmail.com" }); 

单个电子邮件:

 sendIntent.setData(Uri.parse("test@gmail.com")); 

您可以添加extra putExtra(Intent.EXTRA..)并更改setType以达到您的目的。 :P

更新(2014年1月22日):请务必注意,如果您要使用此代码,请检查以确保用户的设备上安装了“com.google.android.gm”软件包。 在任何语言中,请确保在特定字符串和初始化时检查null。

请参阅从Android上的其他应用程序启动应用程序

在此处输入图像描述

建议不要使用包名作为未记录的方法。 如果包名称某天更改,代码将失败。

请尝试使用此代码

  Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts( "mailto", "abc@gmail.com", null)); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "This is my subject text"); context.startActivity(Intent.createChooser(emailIntent, null)); 

参考: http : //developer.android.com/reference/android/content/Intent.html#ACTION_SENDTO \

用这个:

 Intent intent = getPackageManager().getLaunchIntentForPackage("com.google.android.gm"); startActivity(intent); 

这可能取决于设备和API级别。 小心使用。

没有记录和支持的Intent用于启动Gmail – 抱歉!

后来需求变为启动“电子邮件应用程序”,因此以下代码基本上启动了一个电子邮件应用程序,用户必须在显示的选项中进行选择。

所以,我不得不使用

 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("plain/text"); intent.putExtra(Intent.EXTRA_SUBJECT, "Emailing link"); intent.putExtra(Intent.EXTRA_TEXT, "Link is \n" + "This is the body of hte message"); startActivity(Intent.createChooser(intent, "")); 

这个技巧适用于所有版本(API 3+),以及text / plaintext / html (by sonida ):

 Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setType("text/html"); // intent.setType("text/plain"); final PackageManager pm = getPackageManager(); final List matches = pm.queryIntentActivities(intent, 0); ResolveInfo best = null; for (final ResolveInfo info : matches) { if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail")) { best = info; break; } } if (best != null) { intent.setClassName(best.activityInfo.packageName, best.activityInfo.name); } intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "YOUR SUBJECT"); intent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("YOUR EXTRAS")); startActivity(intent); 

简单,100%工作

 Intent intent = new Intent (Intent.ACTION_SEND); intent.setType("message/rfc822"); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"anyMail@gmail.com"}); intent.putExtra(Intent.EXTRA_SUBJECT, "Any subject if you want"); intent.setPackage("com.google.android.gm"); if (intent.resolveActivity(getPackageManager())!=null) startActivity(intent); else Toast.makeText(this,"Gmail App is not installed",Toast.LENGTH_SHORT).show(); 

有用。

 Intent intent = new Intent(Intent.ACTION_SEND); String[] strTo = { getString(R.string.mailto) }; intent.putExtra(Intent.EXTRA_EMAIL, strTo); intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.mail_subject)); intent.putExtra(Intent.EXTRA_TEXT, getString(R.string.mail_body)); Uri attachments = Uri.parse(image_path); intent.putExtra(Intent.EXTRA_STREAM, attachments); intent.setType("message/rfc822"); intent.setPackage("com.google.android.gm"); startActivity(intent); 

尝试这个

我试过很多解决方案,但最后我得到了一个对我来说很好的正确方法

 try { Intent intent = new Intent (Intent.ACTION_VIEW , Uri.parse("mailto:" + "your_emailid@gmail.com")); intent.putExtra(Intent.EXTRA_SUBJECT, "your_subject"); intent.putExtra(Intent.EXTRA_TEXT, "your_text"); startActivity(intent); } catch(Exception e) { Toast.makeText(Share.this, "Sorry...You don't have any mail app", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } 

注意

  • 这将打开您安装的邮件应用程序( 电子邮件Gmail )以发送邮件,您可以在其中选择其中一个。
  • 不要使用直接包名称(“com.google.android.gm”),因为将来如果他们更改包名称,您的应用将面临问题。

这个答案很旧,但仍然出现在谷歌搜索的第一个位置。

因此,从android文档中,现在更好的方法是:

 public void composeEmail(String[] addresses, String subject, Uri attachment) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_EMAIL, addresses); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putExtra(Intent.EXTRA_STREAM, attachment); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } 

}

更多信息可以在这里find

请检查以下代码,它将自动打开默认邮件编辑器。

 try { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_APP_EMAIL); context.startActivity(intent); } catch (android.content.ActivityNotFoundException anfe) { handleException(); } 

是的,其工作代码完美…..

  Intent intent = new Intent(Intent.ACTION_SEND); String[] strTo = { "test@g.com" }; intent.putExtra(Intent.EXTRA_EMAIL, strTo); intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); intent.putExtra(Intent.EXTRA_TEXT, "Body"); intent.setType("message/rfc822"); intent.setPackage("com.google.android.gm"); startActivity(intent);