方法一.获取全部应用:
- PackageManager packageManager = getPackageManager();
- Intent mIntent = new Intent(Intent.ACTION_MAIN, null);
- mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
- List<ResolveInfo> listAllApps = packageManager.queryIntentActivities(mIntent, 0);
- 判断是否系统应用:
- ResolveInfo appInfo = listAllApps.get(position);
- String pkgName = appInfo.activityInfo.packageName;//获取包名
- //根据包名获取PackageInfo mPackageInfo;(需要处理异常)
- mPackageInfo = mContext.getPackageManager().getPackageInfo(pkgName, 0);
- if ((mPackageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {
- //第三方应用
- } else {
- //系统应用
- }