首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QuickOffice:从quickoffice的共享函数获取文件uri

QuickOffice:从quickoffice的共享函数获取文件uri
EN

Stack Overflow用户
提问于 2014-03-27 11:10:48
回答 2查看 244关注 0票数 1

在我的应用程序中,我可以下载一个文档(例如docx)并在QuickOffice中打开它。在编辑文档之后,我使用了“保存”按钮,成功地保存了它之后,我点击了“共享”按钮并选择了我的应用程序,这样我就可以重新上传它。

我的问题是,我得到的uri不是您期望的内容://storage/map/file.docx之类的通常的uri。我从quickoffice那里得到这个:

代码语言:javascript
复制
content://com.quickoffice.android.quickcommon.FileContentProvider/zEV5qmvBJOg2GGWldHMJnNK687Ur6qLGbbMbxj0IxV9cDv2mN8XTGqRrEqU4KIfeZuQNMKMJ_eDx%0AN4YiNZwDShhb4E8%3D%0A

我的问题是,如何将这个uri从文件中转换为真正的路径uri (例如,内容://storage/map/file.docx)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-27 11:59:24

没有“真正的道路”。

欢迎ContentProvider在它想要的任何地方存储它的内容,它可能不是一个文件(例如,数据库中的BLOB列),即使是这样,它也可能不是您可以访问的文件(例如,承载ContentProvider的应用程序的内部存储)。

请使用ContentResolver上的各种方法(如openInputStream() )访问此提供程序的内容。

票数 1
EN

Stack Overflow用户

发布于 2014-04-13 15:23:30

请使用以下代码。对我来说挺好的。

公共静态字符串getContentName(ContentResolver解析器,Uri uri){

代码语言:javascript
复制
String[] ATTACHMENT_META_COLUMNS = {
         OpenableColumns.DISPLAY_NAME,
        OpenableColumns.SIZE
    };
String name = "";
int size= 0;
Cursor metadataCursor = resolver.query(uri,  ATTACHMENT_META_COLUMNS, null, null, null);

if (metadataCursor != null) {
    try {
        if (metadataCursor.moveToFirst()) {
            name = metadataCursor.getString(0);
            size = metadataCursor.getInt(1);
        }
    } finally {
        metadataCursor.close();
    }
}
if (name == null) {
    name = uri.getLastPathSegment();
}

return name;

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22685826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档