ContentProvider内容提供者,音乐数据库

音乐要存在SD卡中哦,不然要写存储地址
先来一个读写的SD卡权限

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

然后就是

list = new ArrayList<Music_Data>();
        ContentResolver resolver = getContentResolver();
        Cursor que = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
        if(que!=null){
            que.moveToFirst();
            que.moveToPrevious();
            while(que.moveToNext()){
//              歌曲ID:MediaStore.Audio.Media._ID 
                int int_ID = que.getInt(que.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
//              歌曲的名称 :MediaStore.Audio.Media.TITLE
                String tilte = que.getString(que.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));  
//              歌曲的专辑名:MediaStore.Audio.Media.ALBUM 
                String album = que.getString(que.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));  
//              歌曲文件的大小 :MediaStore.Audio.Media.SIZE 
                long size = que.getLong(que.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
//              歌曲的歌手名: MediaStore.Audio.Media.ARTIST 
                String artist = que.getString(que.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));  
//              歌曲文件的路径 :MediaStore.Audio.Media.DATA 
                String url = que.getString(que.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));  
//              歌曲的总播放时长 :MediaStore.Audio.Media.DURATION
                int duration = que.getInt(que.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));  
                Music_Data music_Data = new Music_Data(int_ID, tilte, album, size, artist, url, duration);
                list.add(music_Data);
                Log.e("tag", list+"");
            }
            
        }
        
        
    }

再建一个音乐类

package com.example.contentprovider_music;

import android.provider.MediaStore;

public class Music_Data {
//  歌曲ID:MediaStore.Audio.Media._ID 
    int int_ID;
//  歌曲的名称 :MediaStore.Audio.Media.TITLE
    String tilte ;
//  歌曲的专辑名:MediaStore.Audio.Media.ALBUM 
    String album; 
//  歌曲文件的大小 :MediaStore.Audio.Media.SIZE 
    long size;
//  歌曲的歌手名: MediaStore.Audio.Media.ARTIST 
    String artist;
//  歌曲文件的路径 :MediaStore.Audio.Media.DATA 
    String url ;
//  歌曲的总播放时长 :MediaStore.Audio.Media.DURATION
    int duration ;
public Music_Data(int int_ID, String tilte, String album, long size,
        String artist, String url, int duration) {
    super();
    this.int_ID = int_ID;
    this.tilte = tilte;
    this.album = album;
    this.size = size;
    this.artist = artist;
    this.url = url;
    this.duration = duration;
}
@Override
public String toString() {
    return "Music_Data [int_ID=" + int_ID + ", tilte=" + tilte + ", album="
            + album + ", size=" + size + ", artist=" + artist + ", url=" + url
            + ", duration=" + duration + "]";
}
    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,704评论 25 709
  • 迭代中,核心功能最重要 微信1.0版本,就是一个在熟人之间可以免费发文本信息和图片的工具,微信的2.0版本,增加了...
    此生未完成1994阅读 558评论 0 0
  • 整个项目从正式立项到结束(2015年9月),大概也就是5个月的时间,也正好赶上互联网家装概念被炒成“爆款”,算是处...
    tuntunhuang阅读 217评论 0 1
  • 之所以喜欢张爱玲,不管她写的文字是那么活灵活现,更喜欢她看事物也是比较通透,本来简单的事,却给人们腐化的这么复杂,...
    琴记阅读 160评论 0 0
  • 2017/8/17庄婶厨房 此刻是夜里2:20分,说实在的真想闭眼睡觉啊!可是又想到啾啾调取自己身上来了999个懒...
    陈艳霞小树妈阅读 92评论 0 0