2010-06-11 1 views
5

Realizzo un'applicazione che richiede di elencare tutte le immagini disponibili sulla scheda SD del telefono.Elenco Android tutte le immagini disponibili

Ho provato interrogare il modo ContentResolver cioè

Cursor image = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, new String[]{Images.Media._ID,Images.Media.DATA,Images.Media.DISPLAY_NAME}, null, null, null); 

ma senza alcun risultato. C'è un modo in cui posso ottenere la lista o se non è possibile allora c'è qualche possibile intento (ad esempio PICK) con cui posso consentire all'utente di selezionare un file e quindi accedere al percorso del file selezionato dall'utente ??

Helppppp ragazzi ...

risposta

1

Si potrebbe usare l'attività della galleria per selezionare le immagini, qualcosa di simile:

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

nel callback per l'attività il file uri sarà nel parametro intento

+0

Eeeek !!! Grazie Fredrik ... è stato davvero veloce ... proverò non lo saprai ... – JaVadid

8
//where contextObject is your activity 
ContentResolver cr = contextObject.getContentResolver(); 

String[] columns = new String[] { 
       ImageColumns._ID, 
       ImageColumns.TITLE, 
       ImageColumns.DATA, 
       ImageColumns.MIME_TYPE, 
       ImageColumns.SIZE }; 
cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       columns, null, null, null); 

Il mio codice è molto simile al tuo (eccetto che non funzionante) e funziona. Non è necessario andare a chiedere l'intento della galleria per roba, dovrebbe funzionare. Le mie due ipotesi sono:

1) Assicurarsi che la memoria USB non sia montata, se non si vedranno immagini esterne.

2) Forse un problema di autorizzazioni? Prova ad aggiungere l'autorizzazione GLOBAL_SEARCH per vedere se questo aiuta affatto.

+0

Eeeek !!! Devo provare anche questo ... grazie amico ... – JaVadid

+1

bene Gubatron oserei dire ... U r perfettamente perfetto. Allora non hai fatto il mio lavoro di codifica ?? ok forse qualche errore di battitura o qualcosa che immagino ... Grazie amico – JaVadid

+1

Funziona perfettamente, grazie mille! –