Не работает получение изображения из Галереи из синхронизированных папок Picasa//Google +

Я пытаюсь получить изображение из приложения галереи из одной из папок синхронизированных фотографий Google+. После выбора изображения Uri передается обратно правильно. Но когда я пытаюсь получить фактический путь к этому изображению на устройстве хранения, чтобы я мог его использовать, происходит сбой. Похоже, проблема связана именно с поставщиком контента Picasa .

Протестировано на Nexus S и Nexus 7, а также на других устройствах.

E/AndroidRuntime(14572): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.gallery3d.provider/picasa/item/5427003652908228690 }}

Здесь поле dat, кажется, правильно передает Uri, но когда я пытаюсь получить местоположение изображения, происходит сбой со следующей ошибкой.

W/GalleryProvider(14381): unsupported column: _data

Похоже, у поставщика контента для альбомов Picasa нет поля данных _.

Код для получения местоположения:

// imageUri is the Uri from above.
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(imageUri, proj,null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();

String filePath = cursor.getString(column_index);
cursor.close();

Единственными столбцами, которые поддерживаются для этого изображения, являются :[пользовательская _учетная запись, picasa _идентификатор, _отображение _имя, _размер, тип mime _, дата съемки, широта, долгота, ориентация]

Как мы получаем фактическое местоположение этого изображения. И если мы не должны работать с этим изображением, эти изображения вообще не должны показываться пользователю.

Намерение запустить приложение галереи:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
58
задан Kumar Bibek 20 December 2012 в 06:14
поделиться