我正在构建一个音乐播放器应用。我希望它能自动加载我的SD卡中的歌曲,但它不起作用。
为了使它工作,我必须声明一个特定的路径,但它可能让别人的手机拥有不同的音乐文件夹,从而有不同的路径。
如果我在这些手机上声明路径,那么我的应用将无法加载他们的歌曲。
我的应用可以自动加载用户SD卡上的所有歌曲吗?
我的代码在这里..
public class SongManager {
//khai bao duong dan toi sdcard
public static final String MEDIA_PATH = new String("sdcard/ZingMP3");
private ArrayList<HashMap<String, String>> songList = new ArrayList<HashMap<String,String>>();
// khai bao contructor
public SongManager()
{
}
public ArrayList<HashMap<String, String>> getPlayList()
{
File home = new File(MEDIA_PATH);
if (home.listFiles(new FileExtensionFilter()).length > 0)
for (File file : home.listFiles(new FileExtensionFilter()))
{
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", file.getName().substring(0,(file.getName().length()-4)));
song.put("songPath", file.getPath());
songList.add(song);
}
return songList;
}
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
}