Список всех файлов одного типа на устройстве Android? - PullRequest
2 голосов
/ 14 марта 2011

Например, я хочу получить список всех файлов .mp3 на внутреннем И внешнем хранилище. Я также хотел бы, чтобы путь (String) каждого файла .mp3 для справки (сохранить их в List?) Как я могу это сделать? Это относительно дорогая операция? Если это так, следует ли поместить его в поток и во время его работы предоставить пользователю «Загрузка» ProgressDialog?

1 Ответ

6 голосов
/ 14 марта 2011

Пожалуйста, найдите функцию ниже.Он получит все mp3 файлы, хранящиеся во внешней и внутренней памяти.

public void getAllSongs() {

    Uri allsongsuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";

    cursor = managedQuery(allsongsuri, STAR, selection, null, null);

    if (cursor != null) {
        if (cursor.moveToFirst()) {
            do {
                song_name = cursor
                        .getString(cursor
                                .getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
                int song_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media._ID));

                String fullpath = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.DATA));
                fullsongpath.add(fullpath);

                album_name = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ALBUM));
                int album_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));

                artist_name = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ARTIST));
                int artist_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ARTIST_ID));


            } while (cursor.moveToNext());

        }
        cursor.close();
        db.closeDatabase();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...