获得系统中所有的安装包信息

来源:互联网 发布:淘宝商品会下架吗 编辑:程序博客网 时间:2024/05/21 18:43

下文转载至:点击打开链接

获得系统中所有的安装包信息

List<PackageInfo> packageList = this.getPackageManager().getInstalledPackages(0);appList = new ArrayList<AppInfo>();for(PackageInfo info : packageList){CharSequence appName = info.applicationInfo.loadLabel(getPackageManager());if(TextUtils.isEmpty(appName)){appName = info.packageName;}//加上下面这个if条件就把系统自带的应用给过滤掉了,获取到的仅仅是我们自己安装的if((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)<=0){ComponentName comp = getComponentName(info.packageName);AppInfo appInfo = new AppInfo();appInfo.icon = info.applicationInfo.loadIcon(getPackageManager());appInfo.name = appName.toString();appInfo.setActivity(comp, Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);appList.add(appInfo);}}

程序中调用了getComponentName,其源码是:

private ComponentName getComponentName(String packageName) {Intent intent = new Intent(Intent.ACTION_MAIN, null);intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setPackage(packageName);List<ResolveInfo> infoList = getPackageManager().queryIntentActivities(intent, 0);if(infoList != null && infoList.size()>0){ResolveInfo info = infoList.get(0);if(info != null){String pkgName = info.activityInfo.packageName;String clsName = info.activityInfo.name;return new ComponentName(pkgName, clsName);}}return null;}



原创粉丝点击