2010-08-31 8 views
1

ContentResolver cr = getContentResolver(); Uri pic = Uri.parse ("contenu: // media/external/images/media/3"); Bitmap bm = Media.getBitmap (cr, pic);Android MediaStore.Images.Media.getBitmap renvoie l'erreur

Le code ci-dessus est écrit dans la méthode onCreate de ma classe Activity. Il renvoie l'erreur suivante:

08-30 12: 27: 22.352: WARN/System.err (245): java.io.FileNotFoundException: Aucun fournisseur de contenu: [content: // media/external/images/media/3]

Qu'est-ce qui pourrait ne pas fonctionner? Le fichier en question est là parce que j'ai lancé Intent (Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI) dans une autre méthode et j'ai récupéré le Uri de l'image choisie dans l'intention retournée.

Répondre

-1

D'accord, j'ai trouvé le problème. Je donnais le mauvais Uri. Je donnais "[content: // blahblah]" où j'aurais dû donner "content: // blahblah".

+0

quand u dit "u donnaient" cela signifie u écrit Uri pic = Uri.parse ("contenu [: // media/externe/images/médias/3] "); avec [] dans une chaîne pour l'analyse ou ...? 10q – Ewoks

0

Vous devriez faire quelque chose comme:

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); 
}