电子邮件/共享意图,设置附件的文件扩展名

时间:2013-04-30 08:54:27

标签: android android-intent

是否可以设置附加意图的文件扩展名?

此代码适用于我,但是获取的图像具有像flag_be这样的文件名,并且由于缺少扩展而我不会被回收的电子邮件客户端识别为图像。如果只更改名称,附件有效且不会损坏。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "This is my text");
emailIntent.putExtra(Intent.EXTRA_SUBJECT,"This is the subject!");
emailIntent.setType("image/png");

ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.parse("android.resource://" + getPackageName() + "/drawable/flag_be"));

emailIntent.putExtra(Intent.EXTRA_STREAM, uris);

startActivity(emailIntent);

一旦我尝试做一些聪明的事情,就会失败:

uris.add(Uri.parse("android.resource://" + getPackageName() + "/drawable/flag_be.png"));
uris.add(Uri.parse("android.resource://" + getPackageName() + "/drawable-xhdpi/flag_ag.png"));

等...

Android上的Gmail客户端无法发送附件。

我错过了什么吗?

问候,Jan

1 个答案:

答案 0 :(得分:0)

无法共享这样的资源。您必须先将其复制到sdmedia,然后才能设置文件名。或者使用ContentProvider。