android - 文件创建失败取决于 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;
}
解决方案
推荐阅读
- python - 带有套接字编程消息错误的 UDP 客户端?
- java - 错误:找不到符号(Heroku Discord Bot)
- python - 使用日期时间的 Pandas 数据框中的 Parttail for-loop
- python - 对于这种特殊情况,如何在 Django 中的 HTML 页面中显示模型字段值?
- ssis - 如何使用 SSIS 获取存储过程的结果?
- json - 从 api 接收到正确的数组,但是值没有出现在 mat 表中
- ruby-on-rails - 更有效的 Rails 方法来检查三个字段中的任何一个是否唯一?
- python - textx 语法,使用空格作为重复修饰符
- excel - VBA 中的 Rs.update 问题
- c# - 如何在xml中的c#中反序列化后创建一个对象