MediaStore类的使用

来源:互联网 发布:印象笔记 为知笔记 编辑:程序博客网 时间:2024/06/07 06:25
  安卓系统会在每次开机之后扫描所有文件并分类整理存入数据库,记录在MediaStore这个类里,通过这个类就可以快速的获得相应类型的文件。

  当然这个类只是给你一个uri,提取文件的操作还是要通过Curosr这个类来完成。

 获得Cursor对象实例的方法必须通过Context实例获得ContextResolver对象,通过这个对象调用query方法。就是这样 mycontext.getContentResolver().query(uri, columns, selection, null, null);

 mycontext通过活动实例获取,其他的就没必要说了 说说参数(官方文档里有详细说明),第一个就是uri说白了就是地址,第二个是选择哪些列(列的名字在官方文档里有需要哪个写那个就够了),第三个是选择指定的行一般都是通过mimetype去选择(传入的参数是sql语句的字符串),第四个没用过,第五个就是排序的要求和第三个差不多 注意前三个参数有点问题就会空指针。
  下面贴一下通过MediaStore类获得URI的代码

    private Uri getContentUri(FileCategory cat) {        Uri uri;        String volumeName = "external";        switch(cat) {            case Theme:            case Doc:            case Zip:            case Apk:                uri = Files.getContentUri(volumeName);                break;            case Music:                uri = Audio.Media.getContentUri(volumeName);                break;            case Video:                uri = Video.Media.getContentUri(volumeName);                break;            case Picture:                uri = Images.Media.getContentUri(volumeName);                break;           default:               uri = null;        }        Log.e(LOG_CURSOR, "getContentUri");        return uri;    }

MediaStore.Files这个类是在API14之后才能用的,貌似是14记不清了。

0 0
原创粉丝点击