Android: в MediaStore отсутствуют исполнители и альбомы

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

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

Например, запрос всех исполнителей возвращает только 9 результатов, а приложение Android Music Player возвращает 27.

Я использую следующий код для запроса художников:

ContentResolver resolver = getContentResolver();
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST};
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI;

Cursor c = null;

    try {
        c = resolver.query(uri, projection, null, null, null);
    } 
    catch (UnsupportedOperationException e) {
        Log.e("DatabaseHelper", "query: " + e);
        c = null;
    }

    if(c != null) {
        while(c.isAfterLast() == false) {
            Log.e("ARTIST", "NAME: " + cursor.getString(0));
            cursor.moveToNext();
        }
    }

Похоже, что Media Scanner (который обязательно запускается при загрузке моего устройства) не обнаруживает большую часть моей аудиотеки. Я делаю что-то неправильно?

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

Любые мысли были бы очень признательны.

Спасибо.


person protectedmember    schedule 21.01.2012    source источник


Ответы (1)


Возможно, вам также следует запросить android.provider.MediaStore.Audio.Albums.INTERNAL_CONTENT_URI, чтобы остальное было видно в медиаплеере.

person Vadym S. Khondar    schedule 13.02.2012