过滤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得到的。

上一篇:Java 实现一个自己的显式锁Lock(有超时功能)


下一篇:深入理解java内置锁(synchronized)和显式锁(ReentrantLock)