Androidでインストール済みのアプリ一覧の取得方法を調べました。
よくある、Webにあるインストール済みのアプリ一覧の取得方法ですが、
『Androidでのランチャーから起動出来るアプリの一覧の取得』
public class ListLuncherActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// リスト作成
ArrayList<String> appList = new ArrayList<String>();
// パッケージマネージャーの作成
PackageManager packageManager = getPackageManager();
// ランチャーから起動出来るアプリケーションの一覧
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appInfo = packageManager.queryIntentActivities(intent, 0);
// アプリケーション名の取得
if (appInfo != null) {
for (ResolveInfo info : appInfo) {
appList.add( (String)info.loadLabel(packageManager));
}
}
// リスト表示設定
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, appList);
setListAdapter(adapter);
}
}
これがやりたいことでは無い…、インストールしている全てのアプリケーションの情報が取得したい。
で、色々と調べてわかった事は以下のような方法があった。
『Androidでのインストールしているアプリケーションの一覧の取得』
public class ListInstallActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// リスト作成
ArrayList<String> appList = new ArrayList<String>();
// パッケージマネージャーの作成
PackageManager packageManager = getPackageManager();
// インストール済みのアプリケーション一覧の取得
List<ApplicationInfo> applicationInfo = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo info : applicationInfo) {
appList.add((String)packageManager.getApplicationLabel(info));
}
// リスト表示設定
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, appList);
setListAdapter(adapter);
}
}
これで、本当のインストール済みアプリの一覧の取得が出来るようになりました。
ですが、プリインストールアプリがあるので、スゴイ邪魔なので次の1行を追加
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM) continue;
起動しているアプリ自体が一覧に表示されるのでそれも、表示させないようにしたい場合は、
if (info.packageName.equals(this.getPackageName())) continue;
これで自分自身も含まれないように出来ます。
これで、インストール済みアプリの一覧の取得が出来るようになりました。