我正在使用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);
答案 0 :(得分:0)
您需要将文件路径作为Intent.EXTRA_STREAM
传递。精心设计的ContentProviders会在_DATA
列中公开文件路径。