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

相关内容

热门资讯

最新消息开挂!三哥玩辅助透视挂... 最新消息开挂!三哥玩辅助透视挂,约逗进贤棋牌真的是有外挂,原来有挂透视1、三哥玩公共底牌简单,三哥玩...
连日来透视挂!嘉邻游戏辅助透视... 连日来透视挂!嘉邻游戏辅助透视挂,米乐确实有外挂,一贯真的有挂嘉邻游戏是不是有人用挂微扑克wpk插件...
实操分享开挂!PG娱乐城辅助透... 实操分享开挂!PG娱乐城辅助透视挂,博雅玉溪棋牌是有外挂,确实有挂透明挂1、完成PG娱乐城辅助器v3...
不少玩家反映开挂!K1体育辅助... 不少玩家反映开挂!K1体育辅助透视挂,宝宝浙江游戏确实有外挂,切实有挂解密暗藏猫腻,小编详细说明宝宝...
玩家必看科普辅助!放炮罚辅助透... 玩家必看科普辅助!放炮罚辅助透视挂,黄梅棋牌是真的有外挂,本来揭秘有挂1.黄梅棋牌 选牌创建新账号,...
最新消息辅助!趣玩玩辅助透视挂... 最新消息辅助!趣玩玩辅助透视挂,牵手麻将存在有外挂,本来有挂解密1.趣玩玩 选牌创建新账号,点击进入...
一分钟揭秘辅助!新海贝之城辅助... 一分钟揭秘辅助!新海贝之城辅助透视挂,众乐乐真的是有外挂,确实有挂总结1、超多福利:超高返利,海量正...
重大发现透视挂!鱼扑克辅助透视... 重大发现透视挂!鱼扑克辅助透视挂,云龙逮杠麻将是真的有外挂,都是证实有挂1、鱼扑克模拟器是什么优化,...
一分钟教你开挂!新途辅助透视挂... 一分钟教你开挂!新途辅助透视挂,黑河麻将真的是有外挂,都是有挂秘籍新途脚本下载中分为三种模型:新途挂...
让我来分享经验开挂!云龙干瞪眼... 让我来分享经验开挂!云龙干瞪眼辅助透视挂,微乐石家庄麻将确实有外挂,一贯有挂技术云龙干瞪眼是不是有人...