Android 之 MediaStore

MediaStore这个类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包括了多媒体数据库的所有信息,包括音频,视频和图像,android把所有的多媒体数据库接口进行了封装,所有的数据库不用自己进行创建,直接调用利用ContentResolver去掉用那些封装好的接口就可以进行数据库的操作了

需要了解的知识
1. ContentResolver与contentprovider
2. 数据库知识,增删改查
3. 游标cursor

下面的都是以媒体库中的图片为例的,音频、视频都大同小异,只是media包不一样
import android.provider.MediaStore.Images.Media;图片
import android.provider.MediaStore.Audio.Media;音频
import android.provider.MediaStore.Audio.Media;视频
查找的代码:

cursor = this.getContentResolver().query(Media.EXTERNAL_CONTENT_URI,columns, null, null, null);
  • query 参数 _uri : 这个Uri代表要查询的数据库名称加上表的名称
  • Prjs:这个参数代表要从表中选择的列,用一个String数组来表示。
  • Selections:相当于SQL语句中的where子句,就是代表你的查询条件。
  • selectArgs:这个参数是说你的Selections里有?这个符号是,这里可以以实际值代替这个问号。如果Selections这个没有?的话,那么这个String数组可以为null。
  • Order:说明查询结果按什么来排序。

返回所有的游标,遍历得到所要的东西

if (cursor.moveToFirst()) {
    do {
        ImageInfo info = new ImageInfo();
        info.setPhotoPath(cursor.getString(cursor.getColumnIndexOrThrow(Media.DATA)));
        info.setName(cursor.getString(cursor.getColumnIndexOrThrow(Media.DISPLAY_NAME)));
        imageInfos.add(info);
        } while (cursor.moveToNext());  
}

增加

ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,0);
resolver.insert(_uri, values);

这个insert传递的参数只有两个,一个是Uri(同查询那个Uri),另一个是ContentValues。这个ContentValuses对应于数据库的一行数据,只要用put方法把每个列的设置好之后,直接利用insert方法去插入就好了。

更新

Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.DATE_MODIFIED, sid);
this.getContentResolver().update(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,values, where, selectionArgs);

删除

this.getContentResolver().delete(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,where, selectionArgs);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值