Android10中,从图片URI获取文件路径无法真正实现。
创始人
2024-08-20 09:00:57
0

在Android 10及以上版本中,无法直接从图片URI获取其真实的文件路径。可以使用以下代码示例中的方法,将图片文件先复制到应用程序专有目录的缓存目录中,然后再操作该文件。

private String getFilePathFromUri(Context context, Uri uri) {
    String fileName = getFileName(uri);
    File cacheDir = context.getCacheDir();
    File file = new File(cacheDir, fileName);

    try (InputStream inputStream = context.getContentResolver().openInputStream(uri);
         OutputStream outputStream = new FileOutputStream(file)) {

        byte[] buffer = new byte[4 * 1024];
        int read;
        while ((read = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, read);
        }
        outputStream.flush();

    } catch (IOException e) {
        e.printStackTrace();
    }

    return file.getAbsolutePath();
}

private String getFileName(Uri uri) {
    String fileName = "";
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    if (cursor != null && cursor.moveToFirst()) {
        fileName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
        cursor.close();
    }
    return fileName;
}

相关内容

热门资讯

九分钟了解!晋中胡乐辅助工具!... 九分钟了解!晋中胡乐辅助工具!本来真的有辅助app(有挂工具)-哔哩哔哩暗藏猫腻,小编详细说明晋中胡...
第二分钟了解!四川熊猫辅助器!... 第二分钟了解!四川熊猫辅助器!原来一直总是有辅助脚本(有挂攻略)-哔哩哔哩四川熊猫辅助器辅助器是一种...
第八分钟了解!打哈儿辅助软件!... 第八分钟了解!打哈儿辅助软件!本来是有辅助app(有挂助手)-哔哩哔哩一、打哈儿辅助软件可以开透视的...
第5分钟了解!欢游互动辅助!本... 第5分钟了解!欢游互动辅助!本来一直总是有辅助软件(竟然有挂)-哔哩哔哩1、许多玩家不知道欢游互动辅...
7分钟了解!欢聚水鱼智能辅助教... 7分钟了解!欢聚水鱼智能辅助教程!果然是真的有辅助技巧(有挂详情)-哔哩哔哩1、用户打开应用后不用登...
1分钟了解!微乐斗地主有挂吗!... 1分钟了解!微乐斗地主有挂吗!本来是有辅助技巧(有挂解惑)-哔哩哔哩1、微乐斗地主有挂吗辅助器安装包...
十分钟了解!都莱大菠萝怎么包赢... 十分钟了解!都莱大菠萝怎么包赢!一贯一直都是有辅助教程(有挂分享)-哔哩哔哩1、都莱大菠萝怎么包赢破...
第一分钟了解!海盗来了刷能量辅... 第一分钟了解!海盗来了刷能量辅助!原来一直都是有辅助方法(有挂方针)-哔哩哔哩1)海盗来了刷能量辅助...
四分钟了解!星悦山东辅助!原来... 四分钟了解!星悦山东辅助!原来一直总是有辅助工具(确实有挂)-哔哩哔哩1、上手简单,内置详细流程视频...
9分钟了解!winner辅助软... 9分钟了解!winner辅助软件!原来是有辅助攻略(有挂教学)-哔哩哔哩该软件可以轻松地帮助玩家将w...