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;
}

相关内容

热门资讯

分辨真假!wepoker辅助挂... 分辨真假!wepoker辅助挂多功能透视工具,总是是有挂(有挂方式)在进入wepoker软件靠谱后,...
三分钟了解!aapoker辅助... 您好,aapoker这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
热门推荐!德扑之星辅助挂多功能... 热门推荐!德扑之星辅助挂多功能透视工具,确实真的有挂(新版有挂)1、德扑之星有没有辅助教程、德扑之星...
记者发布!智星菠萝德州辅助挂多... 您好,智星菠萝德州这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
我来教教你!德扑圈辅助挂多功能... 我来教教你!德扑圈辅助挂多功能透视工具,原来有挂(有挂教学)1、德扑圈脚本辅助下载、德扑圈免费透视脚...
玩家必看秘籍!红龙poker辅... 玩家必看秘籍!红龙poker辅助挂多功能透视工具,好像是真的有挂(有挂工具)1.红龙poker 选牌...
玩家必备教程!德普之星辅助挂多... 玩家必备教程!德普之星辅助挂多功能透视工具,真是是真的有挂(的确有挂)德普之星是不是有人用挂微扑克w...
我来教教你!德扑之星辅助挂多功... 我来教教你!德扑之星辅助挂多功能透视工具,竟然有挂(有挂存在)1、进入游戏-大厅左侧-新手福利-激活...
玩家必看秘籍!德扑之星辅助挂多... 玩家必看秘籍!德扑之星辅助挂多功能透视工具,本来真的有挂(有挂方略)1、超多福利:超高返利,海量正版...
实测交流!红龙poker辅助挂... 实测交流!红龙poker辅助挂多功能透视工具,竟然存在有挂(有挂规律)1)红龙poker辅助插件:进...