Android Intent用于发送带附件的电子邮件

时间:2011-05-20 22:15:15

标签: java android android-intent attachment

  

可能重复:
  Email from internal storage

收件人正在接收电子邮件,但没有附件。 这是代码,任何专家都知道我哪里出错了?

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, "body text");
File root = Environment.getExternalStorageDirectory();
File file = new File(root, xmlFilename);
if (!file.exists() || !file.canRead()) {
    Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
    finish();
    return;
}
Uri uri = Uri.parse("file://" + file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send email..."));

我没有得到任何干杯消息。 感谢。

2 个答案:

答案 0 :(得分:57)

尝试:

Uri.fromFile(file);

而不是:

Uri.parse("file://" + file);

另外,请尝试text/xml作为您的MIME类型,假设这是一个XML文件,如您的变量名所示。

答案 1 :(得分:13)

该文件可能不是世界可读的。

编辑:的确如此。试着这样做:

Uri uri = Uri.parse("file://" + file.getAbsolutePath());