【发布时间】:2013-08-01 15:12:43
【问题描述】:
当我在我的活动文件中单击发送电子邮件时,从 url 显示为附件,但从未收到文件,只有电子邮件正文和主题。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_SUBJECT, "Attachment from app");
intent.putExtra(Intent.EXTRA_TEXT, "Sending mp3 file " + title);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"some_email@email.com"});
ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.fromFile(new File(trackUrl)));
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(intent, "Send mail"));
}
});
这是我的项目https://docs.google.com/file/d/0B-91m-6ZevwCRTYtYXRGb3l6UVE/edit?usp=sharing,这是我的活动代码:http://pastebin.com/uzdJYxab。我收到的任务表明
ACTION_SEND_MULTIPLE 将使用应该访问声音文件的外部活动。要允许此类访问,您需要: - 创建 ContentProvider。 - 覆盖 public ParcelFileDescriptor openFile(Uri uri, String mode)
然而,关于如何使用内容提供者的信息很少甚至没有,它的方法是 ParcelFileDescriptor openFile(Uri uri, String mode) 以便将来自 url 的文件作为电子邮件附件附加。至少有人能指出我正确的方向吗?
【问题讨论】:
-
您需要确保您的 uri 前面有“file://”。
-
我刚刚检查了 logcat,我得到了:file:///http%3A/wbads.vo.llnwd.net/o25/u/wbdd/vapp/thedarkknight/soundboard/German/TDK_Joker_here_we_go_GER.mp3 %20,所以我猜它被正确解析了但是文件从来没有作为附件接收到
标签: android email attachment provider