安卓系统在开机的时候就会自动检测SD卡的文件,并将音乐文件搜集生成一个数据库文件。我们只需访问数据库表中的信息就能得到所需的文件
// 获取所有歌曲
Cursor cursor = cr.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
得到cursor对象就能访问cursor里的媒体资源
我们只需在需要的地方调用
getAllFile(Environment.getExternalStorageDirectory().getAbsolutePath());
但是如果你的手机在开机后又下载了新的歌曲文件通过上面的方法是访问不到的,因为它还没有被加到数据表中,这样我们就要重写文件搜索的方法。
//获取该路径下的所有文件
public static ListgetAllFile(String path){
ListfileList = new ArrayList ();
File folder = new File(path);
addFile(fileList, folder);
return fileList;
}
public static void addFile(ListfileList,File f){
if(f.isDirectory()){
File[] files = f.listFiles();
for(File f1 : files){
addFile(fileList, f1);
}
}else{
String filename = f.getName();
if(filename.length()>4&&filename.substring(filename.length()-4).equalsIgnoreCase(".mp3")){
fileList.add(f.getAbsolutePath());
}
}
}
getAllFile(Environment.getExternalStorageDirectory().getAbsolutePath());
设置为扫描全部文件夹
添加本地文件,打开音乐文件
问代码还是问操作
?