English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android 개발에서 시스템에 설치된 프로그램 정보를 얻는 방법

이 문서는 Android 개발에서 시스템에 설치된 프로그램 정보를 얻는 방법을 설명하는 예제입니다. 여러분과 공유하고 참고하기 위해 다음과 같이 작성되었습니다:

public class AppInfoParser {
  private static String tag = "AppInfoParser";
  public static List<AppInfo> getAppInfos(Context context){
   //먼저 패키지 관리자를 가져옵니다
    PackageManager packageManager = context.getPackageManager();
    //모든 설치된 패키지를 가져옵니다
    List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
    ArrayList<AppInfo> appInfos = new ArrayList<>();
    for (PackageInfo installedPackage : installedPackages) {
      AppInfo appInfo = new AppInfo();
      //프로그램 패키지 이름
      String packageName = installedPackage.packageName;
      appInfo.setPackageName(packageName);
      //아이콘을 가져옵니다
      Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager);
      appInfo.setIcon(icon);
      //앱의 이름을 가져옵니다
      String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString();
      appInfo.setAppName(appName);
      //설치된 패키지의 경로를 가져옵니다
      String sourceDir = installedPackage.applicationInfo.sourceDir;
      File file = new File(sourceDir);
      //설치된 apk의 크기를 가져옵니다
      long apkSize = file.length();
      //apk的大小을 포맷화합니다
      appInfo.setApkSize(Formatter.formatFileSize(context,apkSize));
      int flags = installedPackage.applicationInfo.flags;
      //현재가 시스템 앱인지 확인합니다
      if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){
        //그렇다면 시스템 앱입니다
        appInfo.setUserApp(false);
      }
        //그렇다면 사용자 앱입니다
        appInfo.setUserApp(true);
      }
      if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){
       //그렇다면 현재 설치된 것이 SD 카드입니다
        appInfo.setSD(true);
      }
        //그렇다면 휴대폰 메모리입니다
        appInfo.setSD(false);
      }
      appInfos.add(appInfo);
    }
    return appInfos;
  }
}
public class AppInfo {
  //애플리케이션 아이콘
  private Drawable icon;
  //애플리케이션 이름
  private String appName;
  //애플리케이션의 크기
  private String apkSize;
  //사용자 프로그램을 나타냅니다
  private boolean isUserApp;
  //저장 위치.
  private boolean isSD;
  private String packageName;
  public String getPackageName() {
    return packageName;
  }
  public void setPackageName(String packageName) {
    this.packageName = packageName;
  }
  public Drawable getIcon() {
    return icon;
  }
  public void setIcon(Drawable icon) {
    this.icon = icon;
  }
  public String getAppName() {
    return appName;
  }
  public void setAppName(String appName) {
    this.appName = appName;
  }
  public String getApkSize() {
    return apkSize;
  }
  public void setApkSize(String apkSize) {
    this.apkSize = apkSize;
  }
  public boolean isUserApp() {
    return isUserApp;
  }
  public void setUserApp(boolean isUserApp) {
    this.isUserApp = isUserApp;
  }
  public boolean isSD() {
    return isSD;
  }
  public void setSD(boolean isSD) {
    this.isSD = isSD;
  }
  @Override
  public String toString() {
    return "AppInfo{" +
        "appName='" + appName + '\'' +
        ", apkSize='" + apkSize + '\'' +
        ", isUserApp=" + isUserApp +
        ", isSD=" + isSD +
        }
  }
}

Android와 관련된 더 많은 내용에 관심이 있는 독자는 본 사이트의 특辑을 확인할 수 있습니다: 《Android 개발 입문 및 고급 교본》、《Android 디버깅 기술 및 일반 문제 해결 방법 요약》、《Android 기본 구성 요소 사용 요약》、《Android 뷰 View 기술 요약》、《Android 레이아웃 layout 기술 요약》 및 《Android 컨트롤러 사용 요약》

본 문서에서 설명한 내용이 모두 여러분의 Android 프로그램 설계에 도움이 되길 바랍니다.

선언: 본 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 모두 소유자입니다. 이 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 본 사이트는 소유권을 가지지 않으며, 인공 편집을 거치지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용을 발견하시면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 이메일을 보내시면, #을 @으로 변경하여 신고하시고 관련 증거를 제공하시면, 해당 저작권 침해 내용이 즉시 삭제됩니다.

좋아하는 것 추천