李继耐与孙锦云的女儿,婵真官方网站,精品技术论坛
本文实例讲述了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程序设计有所帮助。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论