问题
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.
回答1:
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.
回答2:
The file is probably not world readable.
EDIT: indeed. Try doing this:
Uri uri = Uri.parse("file://" + file.getAbsolutePath());
来源:https://stackoverflow.com/questions/6078099/android-intent-for-sending-email-with-attachment