Android список всех доступных изображений

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

я попытался запросить способ 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);

но без результата. Есть ли способ получить список или, если это невозможно, то есть ли какое-либо возможное намерение (например, ВЫБРАТЬ), с помощью которого я могу разрешить пользователю выбрать файл, а затем получить доступ к пути к файлу, выбранному пользователем ??

Помогите ребята...


person JaVadid    schedule 11.06.2010    source источник


Ответы (2)


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

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

в обратном вызове для действия файл uri будет в параметре намерения

person Fredrik Leijon    schedule 11.06.2010

//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, чтобы увидеть, поможет ли это вообще.

person Gubatron    schedule 11.06.2010
comment
Ну, Губатрон, смею сказать... Ты совершенно прав. Тогда у меня не работает кодирование ?? хорошо, может быть, какая-то небольшая опечатка или что-то еще, я думаю ... спасибо, приятель - person JaVadid; 11.06.2010