Android 如何通过MediaStore.Images.Media获取路径

Android 如何通过MediaStore.Images.Media获取路径,android,Android,我使用下面的代码来获取所有sd卡照片的位图 String[] projection = {MediaStore.Images.Media._ID,MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media._ID); int count = c

我使用下面的代码来获取所有sd卡照片的位图

String[] projection = {MediaStore.Images.Media._ID,MediaStore.Images.Media.DATA};  
Cursor cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media._ID); 
int count = cursor.getCount();
int image_column_index = cursor.getColumnIndex(MediaStore.Images.Media._ID);
path = new String[count];
bm = new Bitmap[count];
for (int i = 0; i < count; i++) {
cursor.moveToPosition(i);
int id = cursor.getInt(image_column_index);
path[i] //How to get path
bt[i] = MediaStore.Images.Thumbnails.getThumbnail(getApplicationContext().getContentResolver(), id, MediaStore.Images.Thumbnails.MICRO_KIND, null);
}
String[]projection={MediaStore.Images.Media.\u ID,MediaStore.Images.Media.DATA};
Cursor Cursor=managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection,null,null,MediaStore.Images.Media.\u ID);
int count=cursor.getCount();

int image\u column\u index=cursor.getColumnIndex(MediaStore.Images.Media.ID); 路径=新字符串[计数]; bm=新位图[计数]; for(int i=0;i
我已经得到了所有照片的缩略图。 但我想得到绝对路径。
我应该在哪里修改

Images.ImageColumns.DATA
是路径

如何使用它:

int image_column_index = cursor.getColumnIndex(MediaStore.Images.Media._ID);
int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
//added ... 
path[i] = cursor.getString(image_path_index);
在最新的操作系统中,托管查询已弃用,因此请使用


yourActivity.getContentResolver().query
两者使用相同的参数来代替它

可能更详细地了解如何使用它?int image\u column\u index=cursor.getColumnIndex(MediaStore.Images.Media.\u ID);int image\u path\u index=cursor.getColumnIndex(MediaStore.Images.Media.DATA)//补充。。。path[i]=cursor.getString(image\u path\u index)//补充
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK) {

            if (requestCode == yourRequestCode) {
                    currImageURI = data.getData();
            }
    }
}

// Convert the image URI to the direct file system path
public String getRealPathFromURI(Uri contentUri) {

    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery( contentUri,
                    proj, // Which columns to return
                    null,       // WHERE clause; which rows to return (all rows)
                    null,       // WHERE clause selection arguments (none)
                    null); // Order-by clause (ascending by name)
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();

    return cursor.getString(column_index);
}