Android MediaStore.Images.Media.getBitmap возвращает ошибку

ContentResolver cr = getContentResolver (); Uri pic = Uri.parse ("content: // media / external / images / media / 3"); Bitmap bm = Media.getBitmap (cr, pic);

Приведенный выше код написан в методе onCreate моего класса Activity. Выдает следующую ошибку:

08-30 12: 27: 22.352: WARN / System.err (245): java.io.FileNotFoundException: нет поставщика контента: [content: // media / external / images / media / 3]

Что могло быть не так? Этот файл существует, потому что я запустил Intent (Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI) другим методом и получил обратно Uri выбранного изображения из возвращенного намерения.


person savtargm    schedule 31.08.2010    source источник


Ответы (2)


Вы должны сделать что-то вроде:

private String getPath(Uri uri) {
String[]  data = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(context, uri, data, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
person lokoko    schedule 30.01.2013

Хорошо, я нашел проблему. Я давал неправильный Ури. Я давал «[content: // blahblah]» вместо «content: // blahblah».

person savtargm    schedule 02.09.2010
comment
когда вы сказали, что даете, это означает, что вы написали Uri pic = Uri.parse ([content: // media / external / images / media / 3]); с [] в строке для синтаксического анализа или ..? 10q - person Ewoks; 29.02.2012