当前位置: 移动技术网 > IT编程>移动开发>Android > Android实现整理PackageManager获取所有安装程序信息

Android实现整理PackageManager获取所有安装程序信息

2019年07月24日  | 移动技术网IT编程  | 我要评论

李继耐与孙锦云的女儿,婵真官方网站,精品技术论坛

本文实例讲述了android实现整理packagemanager获取所有安装程序信息的方法。分享给大家供大家参考,具体如下:

list<packageinfo> packs = getpackagemanager().getinstalledpackages(0);//获取安装程序的包名
for (int i = 0; i < packs.size(); i++) {
 packageinfo p = packs.get(i);//某个包信息
 //打印:版本好,版本名,包名....
 log.i("", "-------" + p.versioncode + "-------" + p.versionname + "--------" 
  + p.packagename + "-------" + p.applicationinfo);
}

versioncode, versionname 的值来源androidmanifest.xml文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.testapk"
   android:versioncode="2" // p.versioncode 
   android:versionname="version1" // p.versionname
>

在代码中获取当前应用程序的versioncode,versionname

int versioncode = 0;
try {
  versioncode = getpackagemanager().getpackageinfo(this.getpackagename(), 0).versioncode;
} catch (namenotfoundexception e) {
  e.printstacktrace();
}

代码:

// 通过检测包名,判断apk是否安装
private boolean checkpackageexist(boolean getsyspackages) {
 boolean packageexist = false;
 int versioncode = 0;
 try {
  versioncode = getpackagemanager().getpackageinfo(this.getpackagename(), 0).versioncode;
 } catch (namenotfoundexception e) {
  e.printstacktrace();
 }
 log.i("", "-------" + this.getpackagename() + "-------" + versioncode);//获取当前包名
 list<packageinfo> packs = getpackagemanager().getinstalledpackages(0);
 for (int i = 0; i < packs.size(); i++) {
  packageinfo p = 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;
  }
 }
 return packageexist;
 }
 //安装apk
 private void installapk() {
 if (checkfileexist(fileroot + filename)) {
  intent intent = new intent();
  intent.addflags(intent.flag_activity_new_task);
  intent.setaction(android.content.intent.action_view);
  string type = "application/vnd.android.package-archive";
  intent.setdataandtype(uri.parse("file://" + fileroot + filename),
   type);
  startactivity(intent);
 } else {
  downloadapk();
 }
}

通过以上代码,再加上一些网路下载的代码,就可以做一个简体的应用市场了。

希望本文所述对大家android程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网