通过ContentResolver类成员方法
查询Android系统已经存在的 媒体数据库 来获取的;
//方法一:
public void getMusic(){
Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION, //音频文件播放时长
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA}, //音频文件路径
null, null, null);
if(cur == null){
System.out.println("————查询失败!————");
}else if(!cursor.moveToFirst()){
System.out.println("————音频不存在!————");
}do{
Music m = new Music();
m.setTitle(cur.getString(0)); //0,1,2,3,4 和上面query(Uri uri, String[] projection, String selection,
m.setDuration(cur.getString(1)); // String[] selectionArgs,String sortOrder);第二个参数的顺序是对应的
m.setArtist(cur.getString(2));
m.setId(cur.getString(3));
m.setPath(cur.getString(4));
}while(cur.moveToNext());
}
_____________________________________________________________________________________________________________
public class Music {
private String title;
private String artist;
private String id;
private String path;
private String duration;
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
//方法二:
public void getMusic(){
ContentResolver contentResolver = getContentResolver();
Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if(cursor == null){
System.out.println("————查询失败!————");
}else if(!cursor.moveToFirst()){
System.out.println("————音频不存在!————");
}else{
int data = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DATA); //对应数据库的列号
int display_name = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DISPLAY_NAME); //对应数据库的列号
do{
String music_name = cursor.getString(display_name); //音频文件名
String path = cursor.getString(data); //音频文件路径
}while(cursor.moveToNext());
}
}