Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");
startActivity(Intent.createChooser(intent, "Send Email"));
上面的代码打开一个对话框,显示以下应用程序:-蓝牙,谷歌文档,雅虎邮件,Gmail, Orkut, Skype等。
实际上,我想过滤这些列表选项。我只想显示电子邮件相关的应用程序,如Gmail和雅虎邮件。怎么做呢?
我曾在Android Market应用中看到过这样的例子。
打开Android Market应用程序
打开任何开发者指定了他/她的电子邮件地址的应用程序。(如果你找不到这样的应用程序,请打开我的应用程序:- market://details?id=com.becomputer06.vehicle.diary.free,或通过“车辆日记”搜索)
向下滚动到“开发者”
点击“发送电子邮件”
对话框只显示电子邮件应用程序,如Gmail,雅虎邮件等。它不显示蓝牙,Orkut等。什么样的代码产生这样的对话?
根据Android开发者官方文档,这是发送电子邮件意图的正确方式
添加以下代码行到你的应用程序:
Intent intent = new Intent(Intent.ACTION_SEND);//common intent
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
可选:添加主体和主题,就像这样
intent.putExtra(Intent.EXTRA_SUBJECT, "Your Subject Here");
intent.putExtra(Intent.EXTRA_TEXT, "E-mail body" );
你的问题里已经加了这句话
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"hello@example.com"});
这将是收件人的地址,这意味着用户将向您(开发人员)发送电子邮件。
什么时候你会改变你的意图。你将得到如下所示的setType
intent.setType("text/plain");
使用android.content.Intent。ACTION_SENDTO只获得电子邮件客户端列表,没有facebook或其他应用程序。只有电子邮件客户端。
例:
new Intent(Intent.ACTION_SENDTO);
我不建议你直接使用电子邮件应用程序。让用户选择他最喜欢的电子邮件应用程序。不要限制他。
如果你使用ACTION_SENDTO, putExtra不能将主题和文本添加到意图中。使用Uri添加主题和正文文本。
编辑:
我们可以使用message/rfc822代替“text/plain”作为MIME类型。然而,这并不是说“只提供电子邮件客户端”——而是说“提供任何支持message/rfc822数据的东西”。这很可能包括一些不是电子邮件客户端的应用程序。
message/rfc822支持.mhtml, .mht, .mime的MIME类型