我希望我的应用程序仅扫描我在首选项中指定的那些文件夹中的音乐文件。因此,音频书籍等其他音乐文件不会被包含在内。
目前,我已编写此代码,可扫描所有音乐文件:
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;
}
答案 0 :(得分:1)
查看类似问题的答案(虽然它适用于图像,同样的想法应适用于音频):
Get filename and path from URI from mediastore
看起来DATA存储文件路径。我想如果你使用MediaStore.Audio.Media.DATA
列作为where子句的一部分,你只能从你想要的目录中返回音频文件。