提交 4acdc6b2 编写于 作者: B Blankj

see 04/25 log

上级 33766263
......@@ -9,7 +9,6 @@ import com.google.gson.reflect.TypeToken;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
......
......@@ -70,6 +70,18 @@ public final class UriUtils {
* @return file
*/
public static File uri2File(@NonNull final Uri uri) {
File file = uri2FileReal(uri);
if (file != null) return file;
return copyUri2Cache(uri);
}
/**
* Uri to file.
*
* @param uri The uri.
* @return file
*/
private static File uri2FileReal(@NonNull final Uri uri) {
Log.d("UriUtils", uri.toString());
String authority = uri.getAuthority();
String scheme = uri.getScheme();
......@@ -172,11 +184,8 @@ public final class UriUtils {
}
}
// copy file to accessible cache using streams
InputStream is = uri2InputStream(uri);
File file = new File(Utils.getApp().getCacheDir(), "" + System.currentTimeMillis());
UtilsBridge.writeFileFromIS(file.getAbsolutePath(), is);
return file;
Log.d("UriUtils", uri.toString() + " parse failed. -> 1_1");
return null;
}// end 1_1
else if ("com.android.providers.media.documents".equals(authority)) {
final String docId = DocumentsContract.getDocumentId(uri);
......@@ -266,6 +275,14 @@ public final class UriUtils {
}
}
private static File copyUri2Cache(Uri uri) {
Log.d("UriUtils", "copyUri2Cache() called");
InputStream is = uri2InputStream(uri);
File file = new File(Utils.getApp().getCacheDir(), "" + System.currentTimeMillis());
UtilsBridge.writeFileFromIS(file.getAbsolutePath(), is);
return file;
}
/**
* uri to input stream.
*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册