2013-11-25 4 views
4

Я пытаюсь получить файл изображения из галереи:путь Изображение из URI

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 
     GET_IMAGE_FROM_GALLERY); 

сообщение «Selecture Изображение» не отображается в Toast.

И в onActivityResult();

cursor.getString(column_index)возвращает Null.

Я проверяю его на Nexus 4.

EDIT:

Похоже, это проблема с Android 4.4, я вижу другие приложения неудачу слишком.

Convert content:// URI to actual path in Android 4.4

+0

Возможно лучше твердый ответ: http://stackoverflow.com/questions/2789276/android-get-real-path-by-uri-getpath – Robert

ответ

9

Используйте это:

String selectedImagePath = null; 
Uri selectedImageUri = data.getData(); 
Cursor cursor = activity.getContentResolver().query(
    selectedImageUri, null, null, null, null); 
if (cursor == null) { 
    selectedImagePath = selectedImageUri.getPath(); 
} else { 
    cursor.moveToFirst(); 
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
    selectedImagePath = cursor.getString(idx); 
} 
+0

ив получил исключение курсора null при использовании nexus и moto g. – kannan

+0

Я получаю 'Не удалось прочитать строку 0, столбец -1 из CursorWindow, который имеет 1 строку, 6 столбцов. Ошибка. – Iqbal

Смежные вопросы