获取手机内所有应用程序相关信息的方法
private PackageManager packageMan;
public AppInfoProvider(Context context){
packageMan=context.getPackageManager();
}
//获取手机内安装应用的所有
public class AppInfoProvider { private PackageManager packageMan; public AppInfoProvider(Context context){ packageMan=context.getPackageManager(); } //获取手机内安装应用的所有信息 public List getAllAppsInfo(){ List appInfoList=new ArrayList(); AppInfo appInfoObj; //获取所有安装了的应用程序的信息,包括哪些卸载了的 List allAppsList=packageMan.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES); for(int i=0;i appInfoObj=new AppInfo(); //拿到包名 String packageName=allAppsList.get(i).packageName; //拿到应用程序的信息,以便获取程序的名称和图标 ApplicationInfo appInfo=allAppsList.get(i).applicationInfo; //获取图标 Drawable icon=appInfo.loadIcon(packageMan); //获取程序的名字 String appName=appInfo.loadLabel(packageMan).toString(); appInfoObj.setIcon(icon); appInfoObj.setPackageName(packageName); appInfoObj.setAppName(appName); if(isSysApp(appInfo)){ appInfoObj.setSystemApp(true); } else{ appInfoObj.setSystemApp(false); } appInfoList.add(appInfoObj); } } //判断一个应用程序是不是系统的应用程序 public boolean isSysApp(ApplicationInfo info){ //如果用户下载了一个新的系统应用程序手机应用程序,更新了原来的 if((info.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)!=0){ return true; } else if((info.flags&ApplicationInfo.FLAG_SYSTEM)==0){ return true; } return false; } } (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |