【发布时间】:2011-07-21 01:00:38
【问题描述】:
我在这个网站上看到了多个线程讨论关于在 android 中发送带有附件的电子邮件。我尝试了here、here 和here 讨论的所有方法。
我正在通过代码创建一个 csv 文件并将此文件保存到 android 内部存储中。然后我想将此文件作为附件发送到电子邮件中。嗯,电子邮件正在发送,我收到它没有附件。这就是我所做的。
String columnString = "\"Person\",\"Gender\",\"Street1\",\"PostOfice\",\"Age\"";
String dataString = "\"" + currentUser.userName +"\",\"" + currentUser.gender + "\",\"" + currentUser.street1 + "\",\"" + currentUser.poNumber.toString() + "\",\"" + currentUser.age.toString() + "\"";
String combinedString = columnString + "\n" + dataString;
File file = new File(this.getCacheDir()+ File.separator + "Data.csv");
try {
FileOutputStream out = new FileOutputStream(file);
out.write(combinedString.getBytes());
out.close();
} catch (IOException e) {
Log.e("BROKEN", "Could not write file " + e.getMessage());
}
Uri u1 = Uri.fromFile(file);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Person Details");
sendIntent.putExtra(Intent.EXTRA_STREAM, u1);
sendIntent.setType("text/richtext");
startActivity(sendIntent);
我尝试将 mime 设置更改为“text/html”和“text/richtext”等。但还没有运气。谁能告诉我我做错了什么?
【问题讨论】:
-
您是否尝试在将其放入意图之前打印 URI?
-
是的,我得到了 file:///Data.csv 我认为它应该是什么......是吗?
-
不...您应该使用 sdcard 或其他东西。我不认为该应用程序可以在根目录中创建文件。顺便说一句,您可以使用 adb shell 进行验证。
-
怎么样,你能详细说明一下吗? SDCard也意味着外部存储器,对吗?如果我没有呢?
-
您也可以尝试 getCacheDir() 并将数据存储在那里。您可以在此处获取详细信息 [developer.android.com/reference/android/content/….
标签: android email csv export attachment