Android实现整理PackageManager获取所有安装程序信息
本文实例讲述了Android实现整理PackageManager获取所有安装程序信息的方法。分享给大家供大家参考,具体如下:
List<PackageInfo>packs=getPackageManager().getInstalledPackages(0);//获取安装程序的包名 for(inti=0;i<packs.size();i++){ PackageInfop=packs.get(i);//某个包信息 //打印:版本好,版本名,包名.... Log.i("","-------"+p.versionCode+"-------"+p.versionName+"--------" +p.packageName+"-------"+p.applicationInfo); }
versionCode,versionName的值来源AndroidManifest.xml文件
<manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.testapk" android:versionCode="2"//p.versionCode android:versionName="Version1"//p.versionName >
在代码中获取当前应用程序的versionCode,versionName
intversionCode=0; try{ versionCode=getPackageManager().getPackageInfo(this.getPackageName(),0).versionCode; }catch(NameNotFoundExceptione){ e.printStackTrace(); }
代码:
//通过检测包名,判断APK是否安装 privatebooleancheckPackageExist(booleangetSysPackages){ booleanpackageExist=false; intversionCode=0; try{ versionCode=getPackageManager().getPackageInfo(this.getPackageName(),0).versionCode; }catch(NameNotFoundExceptione){ e.printStackTrace(); } Log.i("","-------"+this.getPackageName()+"-------"+versionCode);//获取当前包名 List<PackageInfo>packs=getPackageManager().getInstalledPackages(0); for(inti=0;i<packs.size();i++){ PackageInfop=packs.get(i); Log.i("","-------"+p.versionCode+"-------"+p.versionName+"--------" +p.packageName+"-------"+p.applicationInfo); if((!getSysPackages)&&(p.versionName==null)){ continue; } if(p.packageName.equalsIgnoreCase(PACKAGENAME)){ packageExist=true; break; } } returnpackageExist; } //安装APK privatevoidinstallApk(){ if(checkFileExist(fileRoot+fileName)){ Intentintent=newIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); Stringtype="application/vnd.android.package-archive"; intent.setDataAndType(Uri.parse("file://"+fileRoot+fileName), type); startActivity(intent); }else{ downloadapk(); } }
通过以上代码,再加上一些网路下载的代码,就可以做一个简体的应用市场了。
希望本文所述对大家Android程序设计有所帮助。