//该类为返回目录信息的类
public class VideoFolderProvider {
private String num_of_videos = "num_of_videos";
private Context context;
/** 要从MediaStore检索的列 */
private final String[] mProjection = new String[] {
MediaStore.Files.FileColumns.DATA,
"count(" + MediaStore.Files.FileColumns.PARENT + ") as "
+ num_of_videos };
/** where子句 */
private String mSelection = MediaStore.Files.FileColumns.MEDIA_TYPE + " = "
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO + " ) "
+ " group by ( " + MediaStore.Files.FileColumns.PARENT;
public VideoFolderProvider(Context context){
this.context = context;
}
public List<VideoFolder> getVideoFolder() {
String filepath, folderpath, foldername;
int nums = 0;
Cursor cursor = context.getContentResolver().query(
MediaStore.Files.getContentUri("external"), mProjection,
mSelection, null, null);
int index_data = cursor
.getColumnIndex(MediaStore.Files.FileColumns.DATA);
int index_num_of_videos = cursor.getColumnIndex(num_of_videos);
List<VideoFolder> itemsList = new ArrayList<VideoFolder>();
// 将数据库查询结果保存到一个List集合中(存放在RAM)
if (cursor != null) {
while (cursor.moveToNext()) {
VideoFolder item = new VideoFolder();
// 获取每个目录下的视频数量
nums = cursor.getInt(index_num_of_videos);
item.setNums(nums);
// 获取文件的路径,如/storage/sdcard0/MIUI/music/Baby.mp3
filepath = cursor.getString(index_data);
// 获取文件所属文件夹的路径,如/storage/sdcard0/MIUI/music
folderpath = filepath.substring(0,filepath.lastIndexOf(File.separator));
// 获取文件所属文件夹的名称,如music
foldername = folderpath.substring(folderpath
.lastIndexOf(File.separator) + 1);
item.setFolderName(foldername);
item.setFolderPath(folderpath);
itemsList.add(item);
}
}
// 如果没有扫描到媒体文件,itemsList的size为0,因为上面new过了
return itemsList;
}
}
//用到令一个类为目录信息类VideoFolder
public class VideoFolder {
<span style="white-space:pre"> </span>public int nums;
<span style="white-space:pre"> </span>public String folderName;
<span style="white-space:pre"> </span>public String folderPath;
<span style="white-space:pre"> </span>public Bitmap coverImg;
<span style="white-space:pre"> </span>public int getNums() {
<span style="white-space:pre"> </span>return nums;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void setNums(int nums) {
<span style="white-space:pre"> </span>this.nums = nums;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public String getFolderName() {
<span style="white-space:pre"> </span>return folderName;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void setFolderName(String folderName) {
<span style="white-space:pre"> </span>this.folderName = folderName;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public String getFolderPath() {
<span style="white-space:pre"> </span>return folderPath;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void setFolderPath(String folderPath) {
<span style="white-space:pre"> </span>this.folderPath = folderPath;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public Bitmap getCoverImg() {
<span style="white-space:pre"> </span>return coverImg;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void setCoverImg(Bitmap coverImg) {
<span style="white-space:pre"> </span>this.coverImg = coverImg;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
}