package cn.jianhaozhan.engine;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import cn.jianhaozhan.bean.AppInfo;
public class AppEngine {
public static List<AppInfo> getAppInfos(Context context){
List<AppInfo> listAppInfos=new ArrayList<AppInfo>();
//获取应用程序信息
PackageManager pm=context.getPackageManager();
List<PackageInfo> list=pm.getInstalledPackages(0);
for (PackageInfo packageInfo : list) {
//获取包名
String packageName=packageInfo.packageName;
String versionName=packageInfo.versionName;
ApplicationInfo applicationInfo=packageInfo.applicationInfo;
Drawable icon=applicationInfo.loadIcon(pm);//获取图标
String name=applicationInfo.loadLabel(pm).toString();//获取应用程序名称
//是否是用户程序
boolean isUser;
int flags=applicationInfo.flags;//获取应用程序相关信息,是否是系统程序,是否安装在SD卡
if((applicationInfo.FLAG_SYSTEM & flags)==applicationInfo.FLAG_SYSTEM){
//系统程序
isUser=false;
}else{
isUser=true;
}
boolean isSD;
//是否安装到SD卡
if ((applicationInfo.FLAG_EXTERNAL_STORAGE&flags)==applicationInfo.FLAG_EXTERNAL_STORAGE) {
isSD=true;
}else{
isSD=false;
}
//添加到bean中
AppInfo appInfo=new AppInfo(name, icon, packageName, versionName, isSD, isUser);
listAppInfos.add(appInfo);
}
return listAppInfos;
}
}