将content:// uri转换为文件路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将content:// uri转换为文件路径相关的知识,希望对你有一定的参考价值。

由于内容标记,我在将uri转换为路径时遇到问题。所以我试图从android存储中选择任何文件类型,并且我能够选择一个文件,但是当我抓取数据并尝试将其转换为字符串路径时,我的应用程序崩溃了。

我转换uri的代码看起来像

String path = data.getData().getPath();

我环顾四周,有人说使用内容提供商和内容解析器,但我不知道如何使用它们。任何帮助都会非常感谢。

显示/上传到s3存储桶。当我的意思是显示它时,我的意思是,如果它是一张照片或视频来显示它,如果它是一个音频文件,我希望能够播放它和其他文件一样,如PDF等。

答案

此方法将Path作为String返回

private String getPath(Uri uri) {

            String[] projection = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContentResolver().query(uri, projection, null, null,null);

            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();

            return cursor.getString(column_index);
        }

以上是关于将content:// uri转换为文件路径的主要内容,如果未能解决你的问题,请参考以下文章

Android 文件绝对路径和Content开头的Uri互相转换

在Android中将文件路径转换为Uri

将Windows磁盘路径转换为注册表文件中的Uri路径

在 Android 4.4 中将 content:// URI 转换为实际路径

android图片文件的路径地址与Uri的相互转换

获取 Uri Android 的真实路径