D'obtenir une image de la Galerie sur Picasa/Google + les dossiers synchronisé ne fonctionne pas

Je suis en train d'essayer d'obtenir une image de la galerie app à partir de l'un des dossiers à partir de Google+ synchronisé les photos. Après avoir sélectionné l'image, l'Uri est passé correctement. Mais quand j'essaie d'obtenir le chemin d'accès réel de l'image sur le périphérique de stockage, de sorte que je peux l'utiliser, il se bloque. Le problème semble être spécifiquement avec la picasa fournisseur de contenu.

Testé sur Nexus S et Nexus 7, et d'autres appareils en tant que bien.

E/AndroidRuntime(14572): java.lang.RuntimeException: Échec de remise résultat ResultInfo{qui=null, demande=1, résultat=-1, data=Intention { dat=content://com.google.android.gallery3d.fournisseur/picasa/item/5427003652908228690 }} 

Ici, le dat champ semble être correctement passage de l'Uri, mais lorsque j'essaie de récupérer l'image de l'emplacement, il plante avec l'erreur suivante.

W/GalleryProvider(14381): non pris en charge colonne: _data 

Semble que le fournisseur de contenu pour Picasa albums n'ont pas de _data champ.

Le code pour obtenir l'emplacement est le suivant:

//imageUri est l'Uri à partir de ci-dessus. 
String[] proj = { MediaStore.Les Images.Médias.DONNÉES }; 
Curseur curseur = contexte.getContentResolver().requête(imageUri, proj,null, null, null); 
int column_index = curseur.getColumnIndexOrThrow(MediaStore.Les Images.Médias.DONNÉES); 
le curseur.moveToFirst(); 

String filePath = curseur.getString(column_index); 
le curseur.close(); 

La seule des colonnes qui semblent être pris en charge pour cette image:
[user_account, picasa_id, _display_name, _size, mime_type, datetaken, la latitude, la longitude, l'orientation]

Comment pouvons-nous obtenir l'emplacement réel de cette image. Et si nous ne sommes pas censés travailler avec cette image, ces images ne doivent pas être indiqués à l'utilisateur dans la première place.

De son Intention de lancer l'application galerie est:

Intent intent = new Intent(); 
l'intention.setType("image/*"); 
l'intention.setAction(Intention.ACTION_GET_CONTENT); 
  • Le _data champ est le contenu de l'image et je ne pense pas à distance les images sont stockées dans il. Vous pouvez essayer d'utiliser l'uri pour l'obtenir à partir d'internet.
  • Elle renvoie l'url seulement sur certains modèles. J'ai vérifié un téléphone HTC, il ne me donner l'url, mais d'autres téléphones n'ont pas. Mais encore une fois, le problème avec le fait d'avoir l'Url, c'est quand que l'URL n'est pas accessible au public.
  • Hey check this out ce qui pourrait vous aider. stackoverflow.com/questions/5944282/...
InformationsquelleAutor Kumar Bibek | 2012-08-01