Androidデバイスがインストールされているアプリケーションを取得
プロジェクトでは、システムがインストールされていることを表示するアプリケーションをよく使用します.インストールされているアプリケーションは、ApplicationInfo、ResolveInfoの2つの方法で取得できます.ここではResolveInfoを使って、コードをつけます.
PackageManager packageMgr = getActivity().getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> resovleInfos = packageMgr.queryIntentActivities(
mainIntent, 0);
for (ResolveInfo resolve : resovleInfos) {
//
CarAllInstalledAppInfo app = new CarAllInstalledAppInfo();
// resolve.loadIcon(packageMgr)
app.setAppIcon(resolve.loadIcon(packageMgr));
// resolve.loadLabel(packageMgr)
app.setAppName(resolve.loadLabel(packageMgr).toString());
// resolve.loadLabel(packageMgr)
app.setAppPackage(resolve.activityInfo.packageName);
// resolve.loadLabel(packageMgr) activity
app.setEntranceActivity(resolve.activityInfo.name);
apps.add(app);
}
//
ComponentName component = new ComponentName(
app.getAppPackage(), app.getEntranceActivity());
Intent intent = new Intent(Intent.ACTION_MAIN);
// , Contact.apk nullpointer
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(component);
startActivity(intent);