游标不返回任何值

时间:2016-04-02 09:41:21

标签: android

我正在从图库中选择图片并将该图片上传到服务器,并将图片设置为ImageView。我在推荐this网站。我的data.getData()返回以下字符串:

content://media/external/images/media/22

但是我的应用程序在以下行崩溃了:

cursor = getContentResolver().query(contentUri,  proj, null, null, null);

这是我的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == RESULT_OK && requestCode == 1){

        Uri uri= data.getData();
        Log.e("uri", String.valueOf(uri));
        mImagePath = getPath(this,uri);
        Bitmap bitmap = BitmapFactory.decodeFile(mImagePath);
        mProfilePic.setImageBitmap(bitmap);
    }
}

public String getPath(Context context, Uri contentUri) {
    Cursor cursor = null;
    try {
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = 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();
        }
    }
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

根据您提供的URI,我建议将以下权限添加到清单中:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />