본문 바로가기

개발도구/aOS - 안드로이드 개발

[안드로이드] 설치된 어플 리스트 찾기 - PackageManager

PackageManager pm = this.getPackageManager();
        
        //flags Additional option flags.  Currently should always be 0.
        List<ApplicationInfo> appList = pm.getInstalledApplications(0);
        Iterator<ApplicationInfo> i = appList.iterator();
        
        /* retrieve installed applications */
        while ( i.hasNext() ) {
        ApplicationInfo app = i.next();
        if (!( app.packageName.equals("com.kakao.talk"))) 
        continue;
        Log.i("TAG", "applist, " +  app.packageName + " class name is : " + app.className 
        + "\n uid is : " + String.valueOf(app.uid));
        }

        /* get version code. Version code is an internal version number. */
        try {
        // 0 means none of the optional information is returned.
PackageInfo packageInfo = pm.getPackageInfo("kr.co.mbridge.applist", 0);
Log.i("TAG", "application version : " + String.valueOf(packageInfo.versionCode));
} catch (NameNotFoundException e) {
e.printStackTrace();
}



============    실제 코드  ================
 //flags Additional option flags.  Currently should always be 0.
                          List<ApplicationInfo> appList = pm.getInstalledApplications(0);
                          Iterator<ApplicationInfo> i1 = appList.iterator();
                         
                          /* retrieve installed applications */
                          while ( i1.hasNext() ) {
                          ApplicationInfo app = i1.next();
                          
                          if (( app.packageName.equals("com.kakao.talk"))){
                          temp_app = 1;
                          }
                     
                          }
                          Log.v(" int temp_app ", Integer.toString(temp_app));
                          if(temp_app == 1){
                          Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("kakaolink://sendurl?msg=" + URLEncoder.encode(subject) + "&url=" + URLEncoder.encode(link) + "&appid=[kr.co.mt]&appver=[1.0]"));
                         intent.addCategory(Intent.CATEGORY_BROWSABLE);
                         intent.putExtra(Browser.EXTRA_APPLICATION_ID, getPackageName());
                         startActivity(intent);
                          }else{
                        alert.setTitle( "카카오톡 미설치" );
                      // alert.setMessage( "안녕 난 케이라고해" );
                      alert.setPositiveButton( "확인", new DialogInterface.OnClickListener() {
                         public void onClick( DialogInterface dialog, int which) {
                             dialog.dismiss();   //닫기
                         }
                      });
                      alert.show();
                          }