【发布时间】:2012-03-14 22:35:14
【问题描述】:
在各种 Android 应用程序中,我使用以下代码显示电子邮件的应用程序选择器,并在用户决定选择其中一个应用程序后,在电子邮件表单中插入预定义文本:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "info@example.org" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sample subject");
String contentStr = "";
for (Object o : mArrayList) { // mArrayList: ArrayList<Object>
content = contentStr+o.toString()+"\n";
}
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, backupStr);
startActivity(Intent.createChooser(emailIntent, "Choose application"));
在 for 循环中,对象的字符串输出与临时字符串“contentStr”连接。在每个对象之后,应该有一个换行符(“\n”)。
所以当我在手机上测试这段代码时,它运行良好,每个对象都有自己的行。
但用户报告说他们的电子邮件应用程序(Android 标准也是如此)将所有内容放在一行中并忽略换行符。
那么我做错了吗?或者我可以忽略这个错误报告,因为它不是开发人员可以解决的问题吗?
【问题讨论】:
-
你可以试试
text/plain而不是plain/text。此外,您应该使用StringBuilder而不是进行所有这些连接。不过,我怀疑这两种方法都有助于解决您的问题。 -
谢谢!但请参阅下面的我的 cmets,了解“text/plain”的缺点。
-
正如 Marco W. 指出的,“message/rfc822”是电子邮件的正确 mime 类型
标签: android email android-intent