在android中发送带附件的邮件

时间:2015-05-26 08:44:46

标签: android

我正在尝试发送附件,其中附件文件可以是来自SD卡的任何类型的文件(如txt,image,pdf等)。 我用过这些

String filelocation="file:/"+attachment_file_path1.getText().toString();    
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// set the type to 'email'
emailIntent.setType("text/plain");
String to[] = {"destination@yahoo.com"};
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "bodyyyyyyyyy");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(filelocation));
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "my mail");
startActivity(Intent.createChooser(emailIntent , "Send email..."));

N:B:如果我打印attachment_file_path1.getText().toString(),它显示为" /storage/sdcard0/myfolder/my.txt"

我的电子邮件已发送到目的地,但我的附件未发送。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

emailIntent.setType(text/plain)更改为emailIntent.setType("*/*")以允许发送任何文件类型。

答案 1 :(得分:0)

路径格式为:

文件:///sdcard/DumbDumpers/DumbDumper.jpg

你需要额外的/因为它指向根目录,即:

file:// + /sdcard/DumbDumpers/DumbDumper.jpg

合并为

文件:///sdcard/DumbDumpers/DumbDumper.jpg

在上面的代码片段中,您需要:

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ sPhotoFileName));