如何为ACTION_SEND指定文件名?

时间:2012-02-01 01:24:50

标签: android android-intent

我正在使用ACTION_SEND从我的应用中的内容提供商处发送文件作为GMail中的电子邮件附件。这很好用,除了我无法以编程方式指定附件的文件名。我的URI是

内容://my.documentcontentprovider/321

附件的文件名是321. 321是文档ID。

我查看了Intent的规范,并没有看到用于指定文件名的EXTRA_键。我能想到的唯一解决方法是将文件名附加到我的URI:

内容://my.documentcontentprovider/321/photo.jpg

它应该有效,但似乎有点hacky。如果有人有更好的想法,请插入。这是我的代码,以防它有用:

    Intent sendDoc = new Intent();
    sendDoc.setAction(Intent.ACTION_SEND);
    sendDoc.putExtra(Intent.EXTRA_SUBJECT, doc.name);
    sendDoc.putExtra(Intent.EXTRA_STREAM, DocumentContentProvider.getUri(doc.id));
    sendDoc.setType(doc.contentType);
    this.foldersFragment.startActivity(sendDoc);

1 个答案:

答案 0 :(得分:0)

您需要将文件路径作为Intent.EXTRA_STREAM传递。精心设计的ContentProviders会在_DATA列中公开文件路径。