获取手机音乐信息

音乐信息类:

 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"/> 

posted @ 2017-11-15 20:17  钱大少丶  阅读(238)  评论(0编辑  收藏  举报