ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내 App 리스트 보기 & Mp3 파일 Album_Art 연결하기
    안드로이드/학습&강좌 2011. 11. 23. 00:34
    정말이지 오래간만에 글을 쓰게 되는 것 같다. 

    처음 블로그를 시작하면서 나름 재미를 느끼면서 열심히 했었지만, 잇다른 광고 개제 실패와

    나의 게으름병이 도지면서 블로그 관리에 많이 소흘해 진것 같다.

    개인적으로 코드에 대한 정리를 하는 차원에서 운영 하고 있는데 최근들어 블로그 자체 관리의 필요성이 더 중요하게 느껴지는
    시점이기도 해서,

    간단하게 정리해서 올리도록 하겠다.

    이번에 소개 할 내용은 내 Device 내 어플 목록 불러오기 , Mp3 목록 불러오기 이다.

    동영상 목록을 불러오는 부분은

    http://ememomo.tistory.com/tag/EXTERNAL_CONTENT_URI 

    이부분을 참고 하기 바란다.

    우선 어플을 불러 오는 부분이다.

    List<ResolveInfo> resolveInfos = manag.queryIntentActivities(mainIntent, 0);

    for (int i = 0, iend = resolveInfos.size(); i < iend; i++) {

       ResolveInfo ri = resolveInfos.get(i);

       String pkgName = ri.activityInfo.applicationInfo.packageName; //패키지 이름

       String className = ri.activityInfo.name; //클래스 이름(실행되는 액티비티 이름)

       ComponentName componentName = new ComponentName(pkgName, className); //컴포넌트 생성 코드

       CharSequence title = ri.loadLabel(manager); //어플리케이션 이름

       Drawable icon = ri.activityInfo.loadIcon(manager); //어플리케이션 아이콘 Drawable

       boolean thirdPartyFlag = false;

       if ((ri.activityInfo.applicationInfo.flags 
              & android.content.pm.ApplicationInfo.FLAG_SYSTEM) == 0 ) {

          // 다운로드 받은 어플리케이션

          thirdPartyFlag = true;

       } else {

          // 프리로드된 어플리케이션

       }

       boolean isExternalApp = false;

       if ((info.activityInfo.applicationInfo.flags & android.content.pm.ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
          // 외장메모리에 설치되는 어플리케이션

          isExternalApp = true;

       } else {

          // 내장메모리에 설치되는 어플리케이션

          isExternalApp = false;
       }

    }

    [출처]

     내가 쓴거보다 더 잘놔와서  이부분은 다른 사람의 것을 인용,...

    설명은 주석을 보고 이해 하시면 될듯 하다.

     이번엔 MediaStore 를 이용한 Mp3 목록 반환 하는 부분이다.
    public static ArrayList<AppInfo> getMp3Datas(Context context){

    ArrayList<AppInfo> arr_Videos = null;
    Cursor videocursor = null;
    String[] proj = { //MediaStore.Audio.Media._ID,
    MediaStore.Audio.Media.ALBUM_ID,
    MediaStore.Audio.Media.TITLE,
    MediaStore.Audio.Media.DATA,
    MediaStore.Audio.Media.DISPLAY_NAME,
    MediaStore.Audio.Media.SIZE };
    videocursor = ((Activity)context).managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null, null);
    if(videocursor.moveToFirst()){
    arr_Videos = new ArrayList<AppInfo>();
    // int n_album = videocursor.getColumnIndex(MediaStore.Video.VideoColumns.ALBUM);
    int n_id  = videocursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
    int n_title  = videocursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
    int n_data    = videocursor.getColumnIndex(MediaStore.Audio.Media.DATA);
    do{
    AppInfo info = null;
    String mp_id = videocursor.getString(n_id);
    String mp_title = videocursor.getString(n_title);
    String mp_data = videocursor.getString(n_data);
    // returnDatas.add(vod_data);
    arr_Videos.add(info);
    }while(videocursor.moveToNext());
    }
    videocursor.close();
    // Trace.d("MEDIASTORE Video SIZE  : " + size);
    return arr_Videos;
     


    함수로 만들어 놨으니 이부분만 리턴 받아 사용 하면 된다. Appinfo Class 는 String 타입 3개 로 정의 하심 될거 같다.

    이 두개의 소스의 이용 해서 만든 화면은 다음 과 같다.

    App 목록



    Mp3 목록

     
    보통의 강좌들에선 AlbumArt 를 불러오는 부분에 대해 설명이 없던 것 같아서 따로 설명하도록 하겠다.

    동영상에서 Thumbnail 을 호출 할때 _ID 가 필요했듯이 Mp3 파이일에선 

    MediaStore.Audio.Media.ALBUM_ID, 가 필요 하다.

    MediaStore.Audio.Media.ALBUM_ID, 를 이용해서 ImageView 에 붙이는 방법은


    참 이 두줄을 알기위해 나도 삽질을 많이 했다 .^^;; 

    App 목록의 Icon 은 Drawable 로 저장되는 소스가 포함 되어 있기 때문에 설명은 생략 하도록 하겠다.

    부디 이 강좌에서 조금의 삽질 시간이라도 줄었으면 하는 바램이다.

     

    댓글

COPYRIGHT 2010 EpoNg. ALL RIGHTS RESERVED.