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);
      } else {
        //それでは、ユーザーアプリ
        appInfo.setUserApp(true);
      }
      if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
       //それでは、現在インストールされているのはSDカード
        appInfo.setSD(true);
      } else {
        //それでは、携帯電話のメモリ
        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#oldtoolbag.com(メール送信時、#を@に変更してください。報告し、関連証拠を提供してください。一旦確認がとりあえず、本サイトは侵害疑いの内容をすぐに削除します。)

おすすめ