MediaStore 클래스 사용

3030 단어
안드로이드 시스템은 매번 켜진 후에 모든 파일을 스캔하고 분류하여 데이터베이스에 저장하여 MediaStore 클래스에 기록한다. 이 클래스를 통해 해당 유형의 파일을 신속하게 얻을 수 있다.
물론 이 클래스는 ui만 줄 뿐입니다. 파일을 추출하는 작업은 Curosr 클래스를 통해 이루어집니다.
Cursor 대상의 실례를 얻는 방법은 반드시 Context 실례를 통해 Context Resolver 대상을 얻어야 하며, 이 대상을 통해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가 기억이 안 나는 것 같아요.

좋은 웹페이지 즐겨찾기