过滤android应用列表(区分系统应用、第三方应用、sd卡中的应用)
if ((app.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { // 系统程序 }else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { //非系统程序 }else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){ //被用户更新过的系统应用 }else if ((app.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) { //安装在sd卡的应用 }
app.flags是通过
context.getPackageManager().getInstalledPackages(0)得到List<PackageInfo>,再通过packageInfo.applicationInfo.flags得到的。