我正在使用ACTION_SEND從我的應用程序中的內容提供程序發送文件作爲GMail中的電子郵件附件。這很好,除了我不能以編程方式指定附件的文件名。當我的URI是如何爲ACTION_SEND指定文件名?
內容://my.documentcontentprovider/321
附件的文件名是321 321的文檔ID。
我查看了Intent的規範,沒有看到指定文件名的EXTRA_鍵。唯一的解決辦法我能想出是追加文件名,以我的URI:
內容://my.documentcontentprovider/321/photo.jpg
它應該工作,但似乎有點哈克。如果有人有更好的想法,請附和這裏是我的代碼,如果它是非常有用的。
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);
如果不知道DocumentContentProvider查詢將返回什麼,很難提供幫助。我認爲它不是一個光標。它是一個File對象嗎? – JosephL 2012-02-01 03:08:28