import android.graphics.drawable.Drawable;
/**
* Model类 ,用来存储应用程序信息
*
* @author wushan
*
*/
public class AppInfo {
private String appLabel; //应用程序标签
private Drawable appIcon; //应用程序图像
private String pkgName = ""; //应用程序所对应的包名
private String versionCode = ""; //应用程序所对应的版本号
private String versionName = ""; //应用程序所对应的版本信息
public AppInfo(){}
public String getAppLabel() {
return appLabel;
}
public void setAppLabel(String appName) {
this.appLabel = appName;
}
public Drawable getAppIcon() {
return appIcon;
}
public void setAppIcon(Drawable appIcon) {
this.appIcon = appIcon;
}
public String getPkgName(){
return pkgName ;
}
public void setPkgName(String pkgName){
this.pkgName=pkgName ;
}
public String getVersionCode() {
return versionCode;
}
public void setVersionCode(String versionCode) {
this.versionCode = versionCode;
}
public String getVersionName() {
return versionName;
}
public void setVersionName(String versionName) {
this.versionName = versionName;
}
}
/**
* 获取手机中所有app的信息(包名、标签 、图像 、 启动应用程序的Intent)
* @param context
*/
public static ArrayList<AppInfo> queryAppInfo(Context context) {
PackageManager pm = context.getPackageManager(); // 获得PackageManager对象
List<PackageInfo> packs = pm.getInstalledPackages(0);
ArrayList<AppInfo> mlistAppInfo = new ArrayList<AppInfo>();
for (PackageInfo reInfo : packs) {
AppInfo appInfo = new AppInfo();
appInfo.setAppLabel(reInfo.applicationInfo.loadLabel(pm).toString());
appInfo.setPkgName(reInfo.packageName);
appInfo.setAppIcon(reInfo.applicationInfo.loadIcon(pm));
appInfo.setVersionCode(reInfo.versionCode + "");
appInfo.setVersionName(reInfo.versionName);
mlistAppInfo.add(appInfo); // 添加至列表中
}
return mlistAppInfo;
}
/**
* 判断该报名所对应的应用程序在手机中是否存在
* @param packageName
*/
public static boolean isHaveApp(String packageName, Context context) {
ArrayList<AppInfo> mlistAppInfo = queryAppInfo(context);
// TODO Auto-generated method stub
if(mlistAppInfo.size() == 0){
return false;
}
for (int i = 0; i < mlistAppInfo.size(); i++) {
if(packageName.equals(mlistAppInfo.get(i).getPkgName())){
return true;
}
}
return false;
}