Android: 特定のintent-filter actionのアプリ一覧を取得する

特定のintent-filterが設定されているアプリ一覧が欲しいなぁと思った際に、
どうやって取得するのかわからなかったので、調べました。

具体的にはIntentを作成し、PackageManagerに、そのIntentに該当するActivityを取得するメソッドqueryIntentActivitiesを実行するという方法です。

PackageManager pm = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, 0);
HashMap<String, String> maps = new HashMap<String, String>();
for (ResolveInfo app : apps) {
	ApplicationInfo info = app.activityInfo.applicationInfo;
	maps.put(info.loadLabel(pm).toString(), info.packageName);
}

以上でーす。


カテゴリー Android | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です