转自:http://www.2cto.com/kf/201312/264066.html
关于Android4.4的图片路径获取,如果回来的Uri的格式有两种
1
|
content:
//com.android.providers.media.documents/document/image:3951
|
1
|
content:
//media/external/images/media/3951
|
出现第一种Uri的操作方式如下图所示:
直接点选最近的图片,应该是Android4.4 特有的Api
.
解决方案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
if
(DocumentsContract.isDocumentUri(context, contentUri)){
String wholeID = DocumentsContract.getDocumentId(contentUri);
String id = wholeID.split(:)[
1
];
String[] column = { MediaStore.Images.Media.DATA };
String sel = MediaStore.Images.Media._ID + =?;
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, column,
sel,
new
String[] { id },
null
);
int
columnIndex = cursor.getColumnIndex(column[
0
]);
if
(cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
cursor.close();
}
else
{
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(contentUri, projection,
null
,
null
,
null
);
int
column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
filePath = cursor.getString(column_index);
}
|