English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この記事では、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(メール送信時、#を@に変更してください。報告し、関連証拠を提供してください。一旦確認がとりあえず、本サイトは侵害疑いの内容をすぐに削除します。)