//ActivityManager 进程管理器
//PackageManager 程序管理器
public
class
AppManager {
/**
* 获取包信息的方法
*
@return
*/
public
List<AppInfoBean> getAppInfo(Context context){
List <AppInfoBean> AppInfoList=
new
ArrayList<AppInfoBean>();
//创建包管理器
PackageManager pm = context.getPackageManager();
List<PackageInfo> packages = pm.getInstalledPackages(0);
//得到系统中的应用
for
(PackageInfo packageInfo : packages) {
AppInfoBean appInfoBean=
new
AppInfoBean();
String packageName = packageInfo.
packageName
;
//得到包名
appInfoBean.setPackName(packageName);
String appName=packageInfo.
applicationInfo
.loadLabel(pm).toString();
//得到app名称
appInfoBean.setAppName(appName);
Drawable icon = packageInfo.
applicationInfo
.loadIcon(pm);
//得到 app图标
appInfoBean.setIcon(icon);
int
flags = packageInfo.
applicationInfo
.
flags
;
//标识
if
((ApplicationInfo.
FLAG_SYSTEM
& flags)==0){
//应用类型是否是用户应用
appInfoBean.setUserApp(
true
);
}
else
{
appInfoBean.setUserApp(
false
);
}
if
((ApplicationInfo.
FLAG_EXTERNAL_STORAGE
& flags)==0){
//存储位置是否在内存中
appInfoBean.setRoomApp(
true
);
}
else
{
appInfoBean.setRoomApp(
false
);
}
AppInfoList.add(appInfoBean);
}
return
AppInfoList;
}
}