안녕하세요. 

안드로이드 초보입니다.
제가 쓰는것중에  틀린것이 있을 수도 있으니까요.

잘못 설명하는 곳이 있으면  지적 부탁드립니다.


안드로이드의  Music  소스중에   Musicutils.java 를 보다보니까,  


이상한 점이 있더군요.  


import android.media.MediaScanner;


안드로이드  리퍼런스에서 공개되지 않은   MediaScanner 이란 패키지를 사용합니다 ㅡ.ㅡ



 Musicutils.java  소스의 일부를 보면,


private static Bitmap getArtworkFromFile(Context context, Uri uri, int albumid)
{

       .. 중간 생략 ....

      if (uri != null) {
                MediaScanner scanner = new MediaScanner(context);
                ParcelFileDescriptor pfd = null;
                try {
                    pfd = context.getContentResolver().openFileDescriptor(uri, "r");
                    if (pfd != null) {
                        FileDescriptor fd = pfd.getFileDescriptor();
                        art = scanner.extractAlbumArt(fd);
                    }
                } catch (IOException ex) {
                } catch (SecurityException ex) {
                } finally {
                    try {
                        if (pfd != null) {
                            pfd.close();
                        }
                    } catch (IOException ex) {
                    }
                }
            }

       ......
}


저 패키지가 공개되지 않아서  우리는 사용이 불가능 한거 같은데요. 
기본 Music에서는 이것을  사용하여서  만들었더군요.


그런데 왜 공개되지도 않은 패키지를 쓰는지  소스를 보다 보니까
주석으로 이렇게 적혀 있더군요.


// The album art thumbnail does not actually exist. Maybe the user deleted it, or
// maybe it never existed to begin with.


내용인즉 사용자가 지웠거나   이전에 존재하지 않았던 경우에 
MediaScanner 를 이용하셔  생성하고  직접 추가해 주더군요.




위 주석과 같이  사용자가  지워버린다 던가 하는 일을  언제나 존재 할 수가 있으므로,
우리가  Music 같은 APP를 만들어서 사용해도 똑같은 상황에  처할 수 있습니다.



기본  Music을  이런경우에  대비하여  공개안된  패키지를 사용하여 앨범아트 만들어 쓰면서  이 패키지를 공개하지 않으면, 
안드로이드가  주장하는   평등한  APP 가 될 수가 없는 것이 아닌가 생각이 듭니다.



저 부분이  다음 SDK에서 공개될지 모르겠으나,
현재로서는   다름 방법을  찾던가,  혹은  안 나오면 안 나오는데로 사용하는 수 밖에 없을 것이 아닌가 합니다.

감사합니다.