在Android应用中发送电子邮件

17

我需要为用户提供一个功能,使用户可以通过发送电子邮件来共享某些数据。我使用了以下代码。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "testing email send.");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<b>this is html text in email body.</b>"));
startActivity(Intent.createChooser(emailIntent, "Email to Friend"));

这显示了邮件应用程序、Gmail和蓝牙供用户选择。 我不想在此列表中显示蓝牙。我需要做什么? 我有Facebook应用程序,它也可以做同样的事情,但列表中不会显示蓝牙。 我需要做相同的事情。


http://stackoverflow.com/questions/10832464/send-mail-from-contact-us-page-to-the-specific-emailid - Amit Parjapati
3个回答

15

您可以使用ACTION_SENTTO代替ACTION_SEND来获取电子邮件客户端列表。我在HTC Wildfire上尝试了这个方法,该手机默认安装了电子邮件客户端、GMail应用和k9-3.508-release。当我运行带有ACTION_SENDTO的代码时,我得到了上述三个电子邮件客户端的列表,而不是蓝牙,无论蓝牙是否启用或禁用。我尝试了在蓝牙启用和禁用时都进行测试,它对我很有效。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SENDTO);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "testing email send.");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<b>this is html text in email body.</b>"));
startActivity(Intent.createChooser(emailIntent, "Email to Friend"));

9
对我来说不起作用。ACTION_SEND 显示GMail,但ACTION_SENDTO则显示“没有应用程序可以执行此操作”。 - Patrick
在三星Galaxy Tab上进行测试,没有电子邮件收件人和HTML MIME类型,但它无法工作:它显示“没有应用程序可以执行此操作”,即Gmail也被过滤掉了。 - Mauro Vanetti
我也不行。。在Nexus S(Android 4.1.2)和HTC(Android 2.3.3)上测试过。 - Karthik Andhamil

14

尝试使用这种类型代替:

emailIntent.setType("message/rfc822");

它打开了 Gmail 应用程序,而不是显示电子邮件应用程序列表,如默认邮件和 Gmail。 - Umakant Patil
不客气。别忘了标记答案为已接受,否则问题将保持未回答状态。 - per_jansson
我知道 :) 但是期望的答案仍然是否定的,那么我该如何将其标记为已接受的答案呢?你的解决方案只是打开了Gmail应用程序。我想要的是原样的列表。只是不想让蓝牙出现在其中。 - Umakant Patil

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接