Как использовать MediaStore для отображения всех изображений в GridView - PullRequest
0 голосов
/ 31 декабря 2011

Мне нужна небольшая помощь, чтобы понять проблему, с которой я столкнулся. У меня есть приложение, которое будет запрашивать все изображения на телефоне и отображать их в GridView. Я смог сделать это и заполнить список. Проблема в том, что я получаю доступ к списку и получаю информацию из элементов запроса. Курсор говорит мне, что элемент имеет путь к файлу

/ шоссе / SDCard / изображения / СМИ / file.jpg

но путь только

/ SDCard / изображений / СМИ / file.jpg

Это код, который я использовал для заполнения списка.

        // Set up an array of the Thumbnail Image ID column we want
        String[] projection = {MediaStore.Images.Thumbnails._ID};
        // Create the cursor pointing to the SDCard
        //returns the cursor that checks the sdcard for Thumbnail id's
              cursor = managedQuery( 
                MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
                projection, 
                // Which columns to return
                null,
                // Return all rows
                null,
                MediaStore.Images.Thumbnails.IMAGE_ID);
              // Get the column index of the Thumbnails Image ID
              columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);

Элементы действительно отображаются, но путь неверен, когда я получаю их из другого курсора. ?????? Я немного растерялся.

Я использовал его в эмуляторе и на своем физическом устройстве. Та же проблема. Я получаю ОШИБКУ, заявляющую, что путь НЕДЕЙСТВИТЕЛЕН, и программа упала

Есть ли способ заставить MediaStore запросить EXTERNAL_CONTENT_URI и указать нужный мне путь? Кроме того, когда я использовал его на своем физическом телефоне, запрос, когда к первому каталогу на моей SD-карте с изображениями затем остановился, и способ для него запросить больше каталогов?

1 Ответ

3 голосов
/ 18 сентября 2012

Вы пробовали MediaStore.Images.Media.EXTERNAL_CONTENT_URI?

Также managedQuery() устарело, используйте getContentResolver().query().

...