为了账号安全,请及时绑定邮箱和手机立即绑定

发送电子邮件意图

发送电子邮件意图

烙印99 2019-07-02 15:30:50
发送电子邮件意图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市场”应用程序上看到了这样的例子。开放Android市场应用程序打开开发人员指定其电子邮件地址的任何应用程序。(如果你找不到这样的应用程序,只需打开我的应用程序:-market://details?id=com.becomputer06.vehicle.diary.free,或按“车辆日记”搜索)向下滚动到“Developer”点击“发送电子邮件”对话框只显示电子邮件应用程序,如Gmail、雅虎邮件等。它不显示蓝牙、Orkut等。是什么代码产生这样的对话框?
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

当你改变你的意图.setType像下面一样,你会得到

intent.setType("text/plain");

使用android.content.Intent.ACTION_SENDTO只获取没有facebook或其他应用程序的电子邮件客户列表。只有电子邮件客户。例:

new Intent(Intent.ACTION_SENDTO);

我不建议你直接进入电子邮件应用程序。让用户选择自己最喜欢的电子邮件应用程序。别约束他。

如果使用action_SENDTO,则putExtra无法将主题和文本添加到意图中。使用URI添加主题和正文文本。

编辑:我们可以用message/rfc822而不是"text/plain"就像哑剧一样。然而,这并不表示“只提供电子邮件客户端”-它表示“提供任何支持Message/rfc 822数据的内容”。这可以很容易地包括一些应用程序,而不是电子邮件客户端。

message/rfc822支持MIME类型的.mhtml, .mht, .mime


查看完整回答
反对 回复 2019-07-02
?
长风秋雁

TA贡献1757条经验 获得超7个赞

有三种主要方法:

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 textstartActivity(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();


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 928 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信