2010-06-11 2 views
5

Я принимаю приложение, которое требует от меня списка всех изображений, доступных на SD-карте телефона.Android список всех доступных фотографий

я пытался запрашивая путь ContentResolver т.е.

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

, но без какого-либо результата. Есть ли способ, которым я могу получить список, или если это невозможно, существует ли какое-либо возможное намерение (например, PICK), с помощью которого я могу позволить пользователю выбрать файл, а затем получить доступ к пути к файлу, который выбрал пользователь?

Helppppp ребята ...

ответ

1

Вы могли бы использовать деятельность галереи для выбора изображения, что-то вроде этого:

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

в функции обратного вызова для деятельности файла URI будет в параметре намерения

+0

ничего себе! Thanx Fredrik ... это было очень быстро ... попробуем это, дайте вам знать ... – 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); 

Мой код очень похож на ваш (кроме разбитого), и он работает. Вам не нужно спрашивать о намерениях Галереи для вещей, это должно сработать. Мои две догадки:

1) Убедитесь, что USB-накопитель не установлен, если вы не видите внешних изображений.

2) Возможно, проблема с разрешениями? Попробуйте добавить разрешение GLOBAL_SEARCH, чтобы узнать, помогает ли это вообще.

+0

wow! я должен попробовать это тоже ... thanx чувак ... – JaVadid

+1

хорошо Губатрон, я смею сказать ... U r совершенно правильно. Тогда у не моя работа по кодированию? ok mayb небольшая ошибка опечатки или что-то, что я думаю ... thanx buddy – JaVadid

+1

Работает отлично, спасибо большое! –

Смежные вопросы