Android Intent for sending email with attachment [

2020-01-26 04:59发布

Possible Duplicate:
Email from internal storage

The email is being received on by the recipient, but without the attachment. Here is the code, any expert knows where did I go wrong?

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..."));

I am not getting any toast message. Thanks.

2条回答
神经病院院长
2楼-- · 2020-01-26 05:37

Try:

Uri.fromFile(file);

instead of:

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

Also, try text/xml for your MIME type, assuming that this is an XML file as your variable name suggests.

查看更多
时光不老,我们不散
3楼-- · 2020-01-26 05:44

The file is probably not world readable.

EDIT: indeed. Try doing this:

Uri uri = Uri.parse("file://" + file.getAbsolutePath());
查看更多
登录 后发表回答