从URI中获取图片真实路径
/**
* 从URI中获取图片真实路径
*
* @param pContext 上下文
* @param uri 文件所在的uri
* @return 返回最终路径
*/
public static String getRealPathFromUri(Context pContext, Uri uri) {
if (null == uri) {
return null;
}
String scheme = uri.getScheme();
if (TextUtils.isEmpty(scheme)) {
return null;
}
if (uri.toString().startsWith("content://com.android.providers")) {// 4.4以上的uri格式
// :content://com.android.providers.media.documents/document/image%3A137638
return resolveDocumentProviderUri(pContext, uri);
} else if (ContentResolver.SCHEME_FILE.equals(scheme)) {// file:///storage/emulated/0/Android/data/com.dropbox.android/files/scratch/go.png
String uriStr = uri.toString();
int index = "file://".length() + 1;
if (uriStr.length() > index) {
return uriStr.substring(index);
}
} else if (uri.toString().startsWith("content://media")) {// content://media/external/images/media/65360
return resolveMediaUri(pContext, uri);
} else {
return getDataColumn(pContext, uri, null, null);
}
return null;
}