2

我希望我的应用程序仅在我在首选项中指定的那些文件夹中扫描音乐文件。这样就不会包含有声读物等其他音乐文件。

目前,我已经编写了这段代码,用于扫描所有音乐文件:

private String[] getTrackList() {
        String[] result = null;
        String[] projection = { MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE };
        String selection = MediaStore.Audio.Media.IS_MUSIC + "!=" + 0;
        cursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                projection, selection, null, MediaStore.Audio.Media.TITLE
                        + " ASC");
        result = new String[cursor.getCount()];
        int position = 0;
        for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
            columnIndex = cursor
                    .getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
            result[position] = cursor.getString(columnIndex);
            position++;
        }
        return result;
    }
4

1 回答 1

1

查看类似问题的答案(虽然它适用于图像,但同样的想法也适用于音频):

从 mediastore 的 URI 获取文件名和路径

看起来 DATA 存储文件路径。我认为如果您使用该MediaStore.Audio.Media.DATA列作为 where 子句的一部分,您可以只返回所需目录中的音频文件。

于 2012-07-01T12:21:11.373 回答