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(哔哩哔哩)1、许多玩家不知道拱趴大...
外挂指南书!竞技联盟透视插件,... 外挂指南书!竞技联盟透视插件,拱趴大菠萝万能挂图解-果然有辅助攻略(哔哩哔哩)1、让任何用户在无需拱...
外挂指南!德普之星有辅助软件吗... 外挂指南!德普之星有辅助软件吗,xpoker辅助-原来一直总是有辅助app(哔哩哔哩)1、下载好xp...
外挂举措!werplan透视挂... 外挂举措!werplan透视挂,佛手大菠萝有挂吗-果然是真的有辅助软件(哔哩哔哩)1、佛手大菠萝有挂...
外挂妙计!德扑圈透视挂,拱趴大... 您好,拱趴大菠萝机器人这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩...
外挂技法!红龙poker作必弊... 外挂技法!红龙poker作必弊指令,sohoo开挂辅助-确实是真的有辅助教程(哔哩哔哩)1、玩家可以...
外挂方式!werplan外卦神... 外挂方式!werplan外卦神器,德州私人局脚本-其实一直总是有辅助神器(哔哩哔哩)德州私人局脚本脚...
外挂指南书!poker mas... 外挂指南书!poker master辅助,哈糖大菠萝开挂-其实真的是有辅助脚本(哔哩哔哩)1、首先打...
外挂步骤!德州局脚本,德普之星... 外挂步骤!德州局脚本,德普之星辅助工具如何设置-其实一直总是有辅助教程(哔哩哔哩)1、点击下载安装,...
外挂教程书!扑克之星辅助,大菠... 外挂教程书!扑克之星辅助,大菠萝免费辅助器-总是一直总是有辅助软件(哔哩哔哩)大菠萝免费辅助器破解侠...