2012-01-21 2 views
0

현재 프로젝트에서 Android 기기의 모든 오디오 트랙을 검색해야합니다. 트랙 외에도 앨범과 아티스트별로 앨범을 그룹화 할 수 있어야합니다.Android : MediaStore에 아티스트 및 앨범이 누락되었습니다.

MediaStore 콘텐츠 공급자를 발견하고 트랙, 앨범 및 아티스트의 ID를 빠르게 반환하는 데이터베이스 도우미 유틸리티 클래스를 만드는 방법을 설정했습니다. 일부를 결과로 반환하는 Media Store에 질의 할 수 있었지만 모든 오디오 정보가 거기에 저장되어있는 것은 아닙니다.

예를 들어, 모든 아티스트 쿼리 만 9 결과를 반환하지만 안드로이드 뮤직 플레이어 응용 프로그램은 내가 예술가 조회하려면 다음 코드를 사용하고 27

를 반환

ContentResolver resolver = getContentResolver(); 
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST}; 
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI; 

Cursor c = null; 

    try { 
     c = resolver.query(uri, projection, null, null, null); 
    } 
    catch (UnsupportedOperationException e) { 
     Log.e("DatabaseHelper", "query: " + e); 
     c = null; 
    } 

    if(c != null) { 
     while(c.isAfterLast() == false) { 
      Log.e("ARTIST", "NAME: " + cursor.getString(0)); 
      cursor.moveToNext(); 
     } 
    } 

그것은 같은 것을 미디어 스캐너 (장치가 부팅 될 때 실행되는 파일)가 내 오디오 라이브러리를 많이 감지하지 못하는 경우. 내가 뭔가 잘못하고 있는거야?

나는 모든 오디오 트랙, 오디오 앨범 및 오디오 아티스트를 빠르고 효율적으로 찾으려고합니다. MediaStore가 나를 도울 수 없다면 나는 파일 구조의 일부 형태를 구현하여 디렉토리 구조를 탐색하고 자신의 데이터베이스를 구축해야 할까봐 두려워하지만, 그러지 않기를 바랍니다.)

고맙습니다.

감사합니다.

답변

1

아마도 미디어 플레이어에서 나머지를 볼 수 있도록 android.provider.MediaStore.Audio.Albums.INTERNAL_CONTENT_URI를 쿼리해야합니다.

관련 문제