MediaStore类的使用

  安卓系统会在每次开机之后扫描所有文件并分类整理存入数据库,记录在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记不清了。

你可能感兴趣的:(store)