我正在尝试使用 Intent 发送 sdcard 文件夹中包含的文件(.log 文件)。这是代码:
public void sendMail() {
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Log files");
intent.putExtra(Intent.EXTRA_TEXT, "body");
//has to be an ArrayList
ArrayList<Uri> uris = new ArrayList<Uri>();
//convert from paths to Android friendly Parcelable Uri's
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
File root = Environment.getExternalStorageDirectory();
File logfolder = new File(root, "log");
for (String file : logfolder.list()){
Uri u = Uri.parse(file);
uris.add(u);
}
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(intent, new String("Send mail...")));
}
}
我从菜单中选择 Gmail。打开 Gmail 后,它会正确显示包含收件人、主题、文本和附件文件的邮件。邮件发送时没有错误,但我收到状态栏通知,显示“无法显示附件”!事实上,收件人正确收到电子邮件,但没有附件。
我不知道出了什么问题。为什么附件发不出去?请帮我!!
好的。我找到了解决方案。需要更换这个:
for (String file : logfolder.list()){
Uri u = Uri.parse(file);
uris.add(u);
}
有了这个:
for (File file : logfolder.listFiles()){
Uri u = Uri.fromFile(file);
uris.add(u);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)