首页 > 解决方案 > 文件创建失败取决于 Uri

问题描述

我正在尝试File从来自 android 库的 Uri 创建,以便我可以将其上传到服务器。

File file = FileUtils.getFile(getContext(), image_uri);

但取决于图像 URI,它可以工作还是不工作。(文件返回 null)

这行得通。

content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F104/ORIGINAL/NONE/1326719792

这不

content://com.google.android.apps.photos.contentprovider/0/1/mediakey%3A%2Flocal%253A38c415af-815a-4043-b3b3-29c7afb76439/ORIGINAL/NONE/2063753810

两者之间的唯一区别是第一个是设备拍摄的照片,另一个是自动下载到图库的GOOGLE CLOUD照片中的照片。

有人听说过这种奇怪的行为吗?

编辑

FileUtils.getFile

public static File getFile(Context context, Uri uri) {
    if (uri != null) {
        String path = getPath(context, uri);
        if (path != null && isLocal(path)) {
            return new File(path);
        }
    }
    return null;
}


public static boolean isLocal(String url) {
    if (url != null && !url.startsWith("http://") && !url.startsWith("https://")) {
        return true;
    }
    return false;
}

标签: androidfileurigoogle-photos

解决方案


推荐阅读