在上篇博文中介绍了Android动态加载APK–代码安装、获取资源和Intent组件调用
本文是对上篇博文的补充,介绍下如何获取已安装和未安装apk的版本、图标等资源。
获取未安装apk的版本、图标等信息
这里使用上次的工程TestB.apk,使用PackageManager及PackageInfo类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | private String getUninstallAPKInfo(Context ctx,String archiveFilePath) { //archiveFilePath=Environment.getExternalStorageDirectory()+"/"+"TestB.apk" String versionName = null; String appName = null; String pakName = null; PackageManager pm=ctx.getPackageManager(); PackageInfo pakinfo=pm.getPackageArchiveInfo(archiveFilePath,PackageManager.GET_ACTIVITIES); if (pakinfo!=null) { ApplicationInfo appinfo=pakinfo.applicationInfo; versionName=pakinfo.versionName; Drawable icon=pm.getApplicationIcon(appinfo); appName=(String) pm.getApplicationLabel(appinfo); pakName=appinfo.packageName; } return versionName; } |
获取已安装apk的信息
这里比较简单,网上的资料也非常多,就不做过的的介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private String getInstallAPKInfo(Context ctx,String pak) { //pak=com.nmbb.b String versionName = null; PackageManager pm=ctx.getPackageManager(); PackageInfo pakinfo; try { pakinfo = pm.getPackageInfo(pak,PackageManager.GET_ACTIVITIES); if (pakinfo!=null) { versionName=pakinfo.versionName; } } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return versionName; } |