获取手机音乐信息
音乐信息类:
1 public class MediaInfo { 2 3 private long _id; 4 private String uri;// 路径 5 private String title; 6 private String artist;// 艺术家 7 8 public MediaInfo(long _id, String uri, String title, String artist) { 9 this._id = _id; 10 this.uri = uri; 11 this.title = title; 12 this.artist = artist; 13 } 14 15 public long get_id() { 16 return _id; 17 } 18 19 public void set_id(long _id) { 20 this._id = _id; 21 } 22 23 public String getUri() { 24 return uri; 25 } 26 27 public void setUri(String uri) { 28 this.uri = uri; 29 } 30 31 public String getTitle() { 32 return title; 33 } 34 35 public void setTitle(String title) { 36 this.title = title; 37 } 38 39 public String getArtist() { 40 return artist; 41 } 42 43 public void setArtist(String artist) { 44 this.artist = artist; 45 } 46 47 @Override 48 public String toString() { 49 return "MediaInfo{" + 50 "_id=" + _id + 51 ", uri='" + uri + '\'' + 52 ", title='" + title + '\'' + 53 ", artist='" + artist + '\'' + 54 '}'; 55 } 56 }
Activity实现类:
1 public class MainActivity extends AppCompatActivity { 2 3 protected ListView mListView; 4 private List<MediaInfo> mMediaInfoList; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 super.setContentView(R.layout.activity_main); 10 initView(); 11 12 mMediaInfoList = getDatas(); 13 } 14 15 private void initView() { 16 mListView = (ListView) findViewById(R.id.list_view); 17 } 18 19 // 获取系统媒体数据库中的音频多媒体信息 20 private List<MediaInfo> getDatas() { 21 List<MediaInfo> list = new ArrayList<>(); 22 23 // 使用内容解析者访问系统提供的数据库 24 Cursor cursor = getContentResolver() 25 .query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 26 null, 27 null, 28 null, 29 MediaStore.Audio.Media.DEFAULT_SORT_ORDER);// 默认排序顺序 30 // 如果游标读取时还有下一个数据,读取 31 32 int idIndex = cursor.getColumnIndex(MediaStore.Audio.Media._ID);//获取列名对应的索引 33 int titleIndex = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);// 标题 34 int artistIndex = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);// 艺术家 35 int uriIndex = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);// 文件路径 36 while (cursor.moveToNext()) { 37 // 根据索引值获取对应列名中的数值 38 long _id = cursor.getLong(idIndex); 39 String title = cursor.getString(titleIndex); 40 String artist = cursor.getString(artistIndex); 41 String uri = cursor.getString(uriIndex); 42 43 MediaInfo mediaInfo = new MediaInfo(_id, uri, title, artist); 44 45 list.add(mediaInfo); 46 } 47 48 for (MediaInfo mediaInfo : list) { 49 Log.d("1507", "" + mediaInfo.toString()); 50 } 51 return list; 52 } 53 54 }
不要忘了加权限:
1 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>