发送电子邮件意向
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"));
上面的代码打开一个对话框,显示以下应用程序: - 蓝牙,Google文档,雅虎邮箱,Gmail,Orkut,Skype等。
其实,我想过滤这些列表选项。 我只想显示电子邮件相关的应用程序,例如Gmail,Yahoo Mail。 怎么做?
我在“Android电子市场”应用程序中看到过这样的例子。
该对话框只显示电子邮件应用程序,例如Gmail,雅虎邮件等。它不显示蓝牙,Orkut等。什么代码产生这样的对话?
当你将改变你的intent.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类型
接受的答案不适用于4.1.2。 这应该适用于所有平台:
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto","abc@gmail.com", null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Body");
startActivity(Intent.createChooser(emailIntent, "Send email..."));
希望这可以帮助。
更新:据marcwjj,似乎在4.3,我们需要传递字符串数组而不是字符串的电子邮件地址,使其工作。 我们可能需要再添加一行:
intent.putExtra(Intent.EXTRA_EMAIL, addresses); // String[] addresses
参考链接
主要有三种方法:
String email = /* Your email address here */
String subject = /* Your subject here */
String body = /* Your body here */
String chooserTitle = /* Your chooser title here */
1.自定义Uri
:
Uri uri = Uri.parse("mailto:" + email)
.buildUpon()
.appendQueryParameter("subject", subject)
.appendQueryParameter("body", body)
.build();
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(Intent.createChooser(emailIntent, chooserTitle));
2.使用Intent
额外:
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:" + email));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, body);
//emailIntent.putExtra(Intent.EXTRA_HTML_TEXT, body); //If you are using HTML in your body text
startActivity(Intent.createChooser(emailIntent, "Chooser Title"));
3.支持库ShareCompat
:
Activity activity = /* Your activity here */
ShareCompat.IntentBuilder.from(activity)
.setType("message/rfc822")
.addEmailTo(email)
.setSubject(subject)
.setText(body)
//.setHtmlText(body) //If you are using HTML in your body text
.setChooserTitle(chooserTitle)
.startChooser();
链接地址: http://www.djcxy.com/p/23257.html
上一篇: Send Email Intent
下一篇: Post different text on facebook and twitter using Android intents