调用相册获取图片,返回Cursor对象为空

调用相册获取图片,返回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);
}

你可能感兴趣的:(调用相册获取图片,返回Cursor对象为空)