Android:ACTION_SEND_MULTIPLE与com.android.email

时间:2011-04-01 17:26:58

标签: android email android-intent

我正在尝试将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则不行。我把这个代码拼凑在这里提出的其他问题中,但没有一个能解决这个问题。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

使用

emailIntent.setType(" */ * ");

没有空格

see here ACTION_SEND_MULTIPLE

答案 1 :(得分:2)

我意识到这已经很晚了,但你的意图类型是倒退的。它应该是

emailIntent.setType("text/plain");

emailIntent.setType("plain/text");

我很惊讶其他答案都没有指出......

答案 2 :(得分:1)

而不是

  

emailIntent.setType( “普通/文本”);

使用

  

emailIntent.setType( “应用/八位字节流”);

我不知道为什么,但它对我有用。