我正在尝试将Intent中的多个附件发送到电子邮件应用(而不是Gmail应用)。我正在使用:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "sample@email.com" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"This is an email");
emailIntent.putExtra(Intent.EXTRA_TEXT, "This is the body");
File f1 = null;
File f2 = null;
try {
f1 = new File("/sdcard/test");
f2 = new File("/sdcard/test.1");
FileWriter fw1 = new FileWriter(f1);
FileWriter fw2 = new FileWriter(f2);
fw1.write("this is some text");
fw2.write("this is more text");
fw1.close();
fw2.close();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.fromFile(f1));
uris.add(Uri.fromFile(f2));
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,uris);
startActivity(emailIntent);
当Gmail用于处理Intent时,它会显示两个附件,并且一切正常。使用电子邮件应用程序时,不会添加任何附件。在EXTRA_STREAM中使用单个Uri时,单个附件可以工作,但使用ArrayList则不行。我把这个代码拼凑在这里提出的其他问题中,但没有一个能解决这个问题。有人可以帮忙吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
我意识到这已经很晚了,但你的意图类型是倒退的。它应该是
emailIntent.setType("text/plain");
不
emailIntent.setType("plain/text");
我很惊讶其他答案都没有指出......
答案 2 :(得分:1)
而不是
emailIntent.setType( “普通/文本”);
使用
emailIntent.setType( “应用/八位字节流”);
我不知道为什么,但它对我有用。