Try using this method instead:
public String getPath(Uri uri) {
String[] projection = { MediaColumns.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
cursor.moveToFirst();
final String imagePath = cursor.getString(column_index);
return imagePath;
}
And then just call
Uri selectedImage = data.getData();
String picturePath = getPath(selectedImage);
I don't know if there is anything wrong in your Intent definition, but here in my app I did like this:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, RESULT_LOAD_IMAGE);