Get filename and path from uri from mediastore

来源:互联网 发布:科技软件 编辑:程序博客网 时间:2024/06/03 20:18
I have an onActivityResult returning from an mediastore image selection which I can get a URI for an image using the following:  Uri selectedImage = data.getData();  
Converting this to a string gives this:content://media/external/images/media/47  Or to a path gives:/external/images/media/47  However I can't seem to find a way to convert this into an absolute path, as I want to load the image into a bitmap without having to copy it somewhere. I know this can be done using the URI and content resolver but this seems to break on rebooting of the phone, I guess MediaStore doesn't keep its numbering the same between reboots.
public String getRealPathFromURI(Context context, Uri contentUri) {  Cursor cursor = null;  try {     String[] proj = { MediaStore.Images.Media.DATA };    cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);    cursor.moveToFirst();    return cursor.getString(column_index);  } finally {    if (cursor != null) {      cursor.close();    }  }}


0 0