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

相关内容

热门资讯

每日必看教程,wpk透视挂免费... 每日必看教程,wpk透视挂免费测试,WOK透视神器方式(总是真的有透视挂)主打本地运行的 AI 黑科...
一分钟揭秘,线上德州ai辅助,... 一分钟揭秘,线上德州ai辅助,AApoker透视辅助指南书(本然有辅助器)是一款可以让一直输的玩家,...
揭秘几款,德扑之星最新教程,德... 德扑之星最新教程AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,...
分享个大家,德扑之星辅助下载,... 分享个大家,德扑之星辅助下载,aapoker透视开挂办法(起初真的是有辅助器)是一款可以让一直输的玩...
实测揭晓,微扑克辅助器案例,a... 实测揭晓,微扑克辅助器案例,aapoker开挂技巧教材(本然有开挂)AI 是一款可以让一直输的玩家修...
我来教教大家,德州游戏挂是真的... 我来教教大家,德州游戏挂是真的吗,德扑之星透视辅助学习(一贯有开挂)是一款可以让一直输的玩家,快速成...
重大消息,wepoker有什么... 您好:wepoker有什么技巧这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
推荐一款,wrpoker透视挂... 推荐一款,wrpoker透视挂真的吗,德扑之星开挂透视教程手段(从来真的有透视挂)是一款可以让一直输...
推荐攻略,微poker脚本,菠... 微poker脚本AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,...
专业讨论,wepoker好友局... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...