if (cursor.moveToFirst()) {
do {
String title = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String singer = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ALBUM));
long size = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.SIZE));
long time = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.DURATION));
String url = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
int _id = cursor.getInt(cursor
.getColumnIndex(MediaStore.Audio.Media._ID));
String name = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
String sbr = name.substring(name.length() - 3,
name.length());
} while (cursor.moveToNext());
但是如果你的手机在开机后又下载了新的歌曲文件通过上面的方法是访问不到的,因为它还没有被加到数据表中,这样我们就要重写文件搜索的方法。
//获取该路径下的所有文件
public static List getAllFile(String path){
List fileList = new ArrayList();
File folder = new File(path);
addFile(fileList, folder);
return fileList;
}
public static void addFile(List fileList,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());