1.获取包管理器对象
PackageManager pm = context.getPackageManager();
2.得到所有安装的程序包名
List<PackageInfo> infos = pm.getInstallPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
3.然后遍历这个集合
for( PackageInfo packInfo : infos){
Drawable icon = packInfo.applicationInfo.loadIcon(pm); //获取应用图标
String appName = packInfo.applicationInfo.loadLabel(pm).toString(); //获取应用名字
ApplicationInfo info = packInfo.applicationInfo;
}
判断是三方应用还是系统应用的方法
public boolean filterApp(ApplicationInfo info) {
if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
return true;
} else if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
return true;
}
return false;
}