获取全部包信息:
/**
*
* 获取系统中的全部包信息
*
* @param context 应用上下文
*
*/
privatevoidgetPackageInfos(Context context) {
PackageManager pm = context.getPackageManager();
List packageInfos = pm.getInstalledPackages(0);
for(PackageInfo packageInfo : packageInfos) {
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
String packageName = packageInfo.packageName;
if(isSystemApp(applicationInfo)) {
Log.i("弗洛拉鲜花", "系统应用:"+ packageName);
} else{
Log.i("弗洛拉鲜花", "安装应用:"+ packageName);
}
}
/**
*
* 获取系统中的全部包信息
*
* @param context 应用上下文
*
*/
private void getPackageInfos(Context context) {
PackageManager pm = context.getPackageManager();
List packageInfos = pm.getInstalledPackages(0);
for (PackageInfo packageInfo : packageInfos) {
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
String packageName = packageInfo.packageName;
if (isSystemApp(applicationInfo)) {
Log.i("弗洛拉鲜花", "系统应用:" + packageName);
} else {
Log.i("弗洛拉鲜花", "安装应用:" + packageName);
}
}
}
方法1:
/**
*
* 判断是否为系统应用程序
*
* @param appInfo 应用程序
*
* @return
*
*/
@SuppressWarnings("static-access")
privatebooleanisSystemApp(ApplicationInfo appInfo) {
return(appInfo.flags & appInfo.FLAG_SYSTEM) >0;
}
/**
*
* 判断是否为系统应用程序
*
* @param appInfo 应用程序
*
* @return
*
*/
@SuppressWarnings("static-access")
private boolean isSystemApp(ApplicationInfo appInfo) {
return (appInfo.flags & appInfo.FLAG_SYSTEM) > 0;
}方法2:
/**
*
* 判断是否为系统应用程序
*
* @param appInfo 应用程序
*
* @return
*
*/
privatebooleanisSystemApp(ApplicationInfo appInfo) {
/**
* uid是应用程序安装时由系统分配(1000 ~ 9999为系统应用程序保留)
*/
returnappInfo.uid >1000;
}