Я просто делал это прошлой ночью :).
В Android SDCard монтируется на / SDCard. У меня нет кода здесь, но это было что-то вроде этого.
public List<String> getMp3Files() {
File sdcard = new File("/sdcard");
return getMp3Files(sdcard);
}
private List<String> getMp3Files(File directory) {
List<String> mp3files = new ArrayList<String>();
File[] files = directory.listFiles();
if(files == null) {
return Collections.EMPTY_LIST;
}
for( File file : files) {
if( file.isFile() && file.getName().toLowerCase().endsWith(".mp3")) {
mp3files.add(file.getAbsolutePath());
} else if ( file.isDirectory()) {
mp3files.addAll(getMp3Files(file));
}
}
return mp3files;
}
это не оптимизировано ВСЕ для мобильных телефонов, но работает. И будьте осторожны, если вы запустите этот код, начиная с корневой папки, он окажется в бесконечном цикле папок! (всегда можно попробовать: D).