前回の記事では、プロジェクトでよく使われるいくつかの実用的な機能を紹介しました。今回は、Android スマートフォンにインストールされているモバイル アプリケーションを入手する方法を紹介します。それでは、さっそくコードに進みましょう。
private String getInstalledAppListAsString(){ PackageManager pm = context.getPackageManager(); List<ApplicationInfo> apps = pm.getInstalledApplications(PackageManager.GET_GIDS); StringBuffer stringBuffer = new StringBuffer() for (ApplicationInfo app : apps); getLaunchIntentForPackage(app.packageName) != null) { // ランチャー インテントを持つアプリ if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) { // 更新されたシステム アプリ } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { //システム アプリ } else { // ユーザーがインストールしたアプリ stringBuffer.append(app.packageName).append(';') } } } return; stringBuffer.toString();各アプリケーションに関する関連情報を取得する方法を見てみましょう。
package cn.lyz.mobilesafe.domain;import android.graphics.drawable.Drawable;/** * 取得したアプリケーション基本情報エンティティクラス * @author liuyazhuang * */public class AppInfo {//Icon private Drawable app_icon;//アプリケーション名private String app_name;//アプリケーションのバージョン番号 private String app_version;//アプリケーション パッケージ名 private String packagename;//ユーザーかどうか appprivate boolean isUserApp;public AppInfo() {super();//TODO 自動生成コンストラクター スタブ}public AppInfo(Drawable app_icon, String app_name, String app_version,String packagename) {super();this.app_icon = app_icon;this.app_name = app_name;this.app_version = app_version;this.packagename = パッケージ名;}public AppInfo(Drawable app_icon, String app_name, String app_version,String packagename, boolean isUserApp) {super();this.app_icon = app_icon;this.app_name = app_name;this.app_version = app_version;this.packagename = packagename;this.isUserApp = isUserApp;}public Drawable getApp_icon() {return app_icon;}public void setApp_icon(Drawable app_icon) {this.app_icon = app_icon;}public String getApp_name() {return app_name;}public void setApp_name(String app_name) {this.app_name = app_name;}public String getApp_version() {return app_version;}public void setApp_version(String app_version) {this.app_version = app_version;}public String getPackagename() {return packagename;}public void setPackagename(String packagename) {this.packagename = packagename;}public boolean isUserApp() {return isUserApp;}public void setUserApp(boolean isUserApp) {this.isUserApp = isUserApp;}@Overridepublic String toString() {return "AppInfo [app_icon] =" + app_icon + "、app_name=" + app_name+ "、app_version=" + app_version + ", packagename="+ packagename + ", isUserApp=" + isUserApp + "]";}}