【发布时间】:2014-11-17 02:34:21
【问题描述】:
我已经进行了一些搜索,但我认为没有任何东西可以回答我关于 GMail 4.6 版的问题
我的问题是我无法在从我创建的 Android 应用程序发送的电子邮件中呈现 HTML 格式。我正在使用定义了 text/html 类型的意图。我相信问题是由 GMail 应用程序引起的,因为它会在发送之前从我的电子邮件中删除 HTML。
我已经添加了可能导致问题的代码,除非它是 GMail。
String body =
"<table border='1'>" +
"<tr>" +
"<td>Paint Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (subtotal - ((subtotal * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Paint Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", subtotal) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Undercoat Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (undercoat - ((undercoat * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Undercoat Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", undercoat) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (total - ((total * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", total) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total VAT</td>" +
"<td>£" + String.format("%.2f", ((total *20)/100)) + "</td>" +
"</tr>" +
"</table>";
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Paint Cost");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body)
);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
提前致谢。
编辑 1
String body =
"<table border='1'>" +
"<tr>" +
"<td>Paint Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (subtotal - ((subtotal * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Paint Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", subtotal) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Undercoat Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (undercoat - ((undercoat * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Undercoat Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", undercoat) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total Cost(Exc VAT)</td>" +
"<td>£" + String.format("%.2f", (total - ((total * 20)/100))) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total Cost(Inc VAT)</td>" +
"<td>£" + String.format("%.2f", total) + "</td>" +
"</tr>" +
"<tr>" +
"<td>Total VAT</td>" +
"<td>£" + String.format("%.2f", ((total *20)/100)) + "</td>" +
"</tr>" +
"</table>";
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Paint Cost");
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, Html.fromHtml(body)
);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
不过,这似乎反而会使 GMail 应用程序崩溃。
【问题讨论】:
-
您不应该使用
Intent.EXTRA_STREAM而不是Intent.EXTRA_TEXT -
@jumpingcode 这似乎只是想让 Gmail 应用程序崩溃,并且它不接受常规邮件应用程序的字符串。
-
@jumpingcode 有没有办法做到这一点,而无需在我的应用程序中创建整个电子邮件界面?