Android在电子邮件中共享html文本并在其他应用程序中共享纯文本

时间:2017-06-02 04:45:53

标签: android email android-intent share

在google和stackoverflow中进行一些研究后,我了解到我能够为Android中的不同应用发送不同的内容,例如here

但是,我遇到了一些问题。

  1. 如果选择了任何邮件客户端,我想发送HTML电子邮件(手机默认邮件客户端,Gmail应用,Outlook应用等)。在上面的链接中,我需要单独指定每个邮件应用程序,我想避免使用。

  2. 当我尝试通过GMAIL应用发送HTML电子邮件时。它的格式不符合预期。

1 个答案:

答案 0 :(得分:0)

  

如果选择任何邮件客户端,我想发送HTML电子邮件

无法通过此方式查询用于仅发送电子邮件的活动,Intent.ACTION_SEND将获取能够发送您定义的MIME_TYPE的所有应用。

例如,如果您使用plain/text作为MIME_TYPE,则将返回可共享plain/text的所有客户端。这取决于用户 - 他们想与哪个应用分享。但是,您可以比较包名称以确保选择了哪个应用程序。

假设您要检查是否已选择gmail客户端,

// Query about app that can send `text/plain`
final Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT,"text");

final List<ResolveInfo> activities = getPackageManager().queryIntentActivities (i, 0);

// Check if gmail is clicked, when the `chooser` item is clicked,
ResolveInfo info = activities.get(position);
if (info.activityInfo.packageName.contains("com.google.android.gm")) {
    // Gmail was chosen
}
  

当我尝试通过GMAIL应用发送HTML电子邮件时。它不是   格式化它应该是。

Html不支持所有Html标记,您需要编写自己的标记处理程序来执行此操作。看看这个link,看看Html支持哪些标签。