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程序设计有所帮助。