如何使用外部sd的URI创建文件?

时间:2017-02-07 15:09:59

标签: android uri

基本上,我的问题与this有点类似,我已经使用了解决方法。问题是,它只有在文件来自内部存储器时才有效,这就是它的原因:

在这部分代码中(在我提到的问题的解决方案中):

        if (isExternalStorageDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];

            if ("primary".equalsIgnoreCase(type)) {
                return Environment.getExternalStorageDirectory() + "/" + split[1];
            }
            // TODO handle non-primary volumes
        }

没有以下 else 语句。我已经搜索了访问非主要卷的方法,但我无法找到答案。

1 个答案:

答案 0 :(得分:0)

该问题和答案中提供的代码糟糕Uri无需指向文件,更不用说您可以访问的文件,更不用说可以从Uri本身派生其路径的文件。具有Uri方案的content是一个不透明的句柄,仅此而已。

使用ContentResolveropenInputStream()(或openOutputStream())获取Uri标识的内容的流。