public static String getImageRealPathFromURI(Uri contentURI,Context context) {
String result = "";
int idx = 0;
Cursor cursor = context.getContentResolver().query(contentURI, null, null, null, null);
if (cursor == null) { // Source is Dropbox or other similar local file path
result = contentURI.getPath();
} else {
cursor.moveToFirst();
String document_id = cursor.getString(0);
MyLogUtils.d(Constants.LOG_TAG,"cursor:"+document_id);
if (document_id.contains(":"))
{
String id = document_id.split(":")[1];
String[] column = { MediaStore.Images.Media.DATA };
String sel = MediaStore.Images.Media._ID + "=?";
Cursor cursorByColon =context. getContentResolver().
query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{ id }, null);
int columnIndex = cursorByColon.getColumnIndex(column[0]);
if (cursorByColon.moveToFirst()) {
result = cursorByColon.getString(columnIndex);
}
cursorByColon.close();
}
else
{
idx = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
result = cursor.getString(idx);
}
cursor.close();
}
return result;
}
private static String getCursorResultByColon(Context context, String result, String fileId) {
String id = fileId;
String[] column = { MediaStore.Images.Media.DATA };
String sel = MediaStore.Images.Media._ID + "=?";
Cursor cursorByColon =context. getContentResolver().
query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{id}, null);
int columnIndex = cursorByColon.getColumnIndex(column[0]);
if (cursorByColon.moveToFirst()) {
result = cursorByColon.getString(columnIndex);
}
cursorByColon.close();
return result;
}
解决拾取图片回来解析真实URI有冒号的问题
最新推荐文章于 2021-02-24 14:06:56 发布