调用相册获取图片,返回Cursor对象为空
2016-10-11 本文已影响107人
middle2021
调用相册获取图片,返回Cursor对象为空。(原因:是系统将照片放在了缓存目录,导致返回的路径不正确导致)
解决方案:判断Cursor是否为空,为空截取返回的Uri的路径前的 ' file:/// ' ,剩下的就是图片的真实路径。
Uri originalUri = data.getData(); // 获得图片的uri
String[] proj = {MediaStore.Images.Media.DATA};
String path = "";
Cursor cursor = getContentResolver().query(originalUri, proj, null, null, null);
if (cursor == null) {
String str = originalUri.toString();
KLog.i(str);
if (str.contains("file:///")) {
path = str.substring(7);
}
} else {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
path = cursor.getString(column_index);
}