Как я могу получить обложку альбома в MediaStore? - PullRequest
0 голосов
/ 16 февраля 2010

Как я могу получить обложку альбома в MediaStore? Я пытаюсь что-то вроде:

String[] projectionImages  = new  String[]{MediaStore.Audio.Albums.ALBUM_ART, MediaStore.Audio.Albums.ALBUM_KEY};


Cursor c = contentResolver.query(MediaStore.Audio.Albums.INTERNAL_CONTENT_URI, projectionImages, null, null, null);

if(c != null){
      c.moveToFirst();
      Log.e(TAG, "am gasit " + c.getString(0) + " " + c.getString(1));
  }
 else{
      Log.e(TAG, "No image");
 }

но не работает .. Я получаю нулевое значение для каждой записи!

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 марта 2013

Попробуйте это

Cursor cursorAlbum = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
                    new String[]{MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM_ART},MediaStore.Audio.Albums._ID+ "=" + album_id, null, null);

    if(cursorAlbum != null  && cursorAlbum.moveToFirst())
      {

        String uri = cursorAlbum.getString(cursorAlbum.getColumnIndex("album_art"));
        cursorAlbum.close();
        if(uri != null )    image.setImageURI(Uri.parse(uri));

      }         
1 голос
/ 16 февраля 2010

Повторяется ли количество записей, которые вы видите в каталоге, или числа не совпадают?

При поиске изображений в MediaStore у меня работает следующее

if (cursor.moveToFirst()) {
do {
    int col = cursor.getColumnIndex(Images.Media.DESCRIPTION);
    String description = cursor.getString(col);
    if (new Long(item).toString().equals(description)) {
        imageId = cursor.getPosition();
        int dataColumn = cursor.getColumnIndex(Images.Media.DATA);
        filePath = cursor.getString(dataColumn);
        return true;
    }
} while (cursor.moveToNext());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...