我有一个Android应用程序,可以将应用程序的安装目录中的文本文件直接保存到手机中。我需要允许用户创建一个新的电子邮件,附加这个保存的文本文件。当我开始发送电子邮件的意图时,所有内容都正确显示在Gmail中,但附件不会发送。我所有关于堆栈溢出的搜索似乎只涉及从SD卡连接图像文件。以下是我使用的代码。请让我知道我是否做了不正确的事情。如何附加本地存储在应用程序目录中的文本文件
File myFile = new File(getFilesDir() + "/" + "someFile.txt");
FileOutputStream stream = null;
if(file != null)
{
steam = openFileOutput("someFile.txt", Context.MODE_WORLD_READABLE);
stream.write(some_data);
Uri uri = Uri.fromFile(myFile);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, email_text);
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
file.close();
startActivity(Intent.createChooser(sendIntent, "Email:"));
}
我也试过sendIntent.setType(“application/octet-stream”);但这并没有什么区别。我不知道为什么文件没有附加和发送。
任何想法?
嗯......这是不幸的。我会试一试,看看它是否更好。谢谢Al。 如果没有SD卡存在,你采取了什么方法?您是否决定将所有文件数据都附加到Intent电子邮件的EXTRA_TEXT部分中? – Michael 2010-07-10 03:35:00
如果没有卡片,我会显示“您需要SD卡信息”。 我知道这远非理想,但它避免了用户抱怨附件没有作为附件到达并且与他们有关的问题在他们的邮件客户端中进行文件 - >保存并抱怨他们的其他应用程序无法导入的问题该文件(由于邮件头在文件中)。 – 2010-07-10 07:05:47
再次感谢艾尔。更改我的代码以将文件存储在SD卡上。 – Michael 2010-07-11 06:37:57