几种获取应用程序/apk安装包版本信息的方法
程序员文章站
2022-06-16 16:24:52
...
获取到PackageInfo之后,那么包名,版本号什么的都可以得到咯
一、应用程序得到自己的版本信息
/** * 得到当前应用版本名称的方法 * * @param context * :上下文 * @throws Exception */ public static String getVersionName(Context context) throws Exception { // 获取packagemanager的实例 PackageManager packageManager = context.getPackageManager(); // getPackageName()是你当前类的包名 PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); String version = packInfo.versionName; return version; }
二、应用程序获得其他应用程序的版本信息(根据包名)
那从代码来看,其实一方法也可以直接只用二方法得到
/** * 获取指定包名的版本号 * * @param context * 本应用程序上下文 * @param packageName * 你想知道版本信息的应用程序的包名 * @return * @throws Exception */ public static String getVersionName(Context context, String packageName) throws Exception { // 获取packagemanager的实例 PackageManager packageManager = context.getPackageManager(); PackageInfo packInfo = packageManager.getPackageInfo(packageName, 0); String version = packInfo.versionName; return version; }
三、从SD卡等路劲获取某安装包(apk文件)的版本信息
/** * 从一个apk文件去获取该文件的版本信息 * * @param context * 本应用程序上下文 * @param archiveFilePath * APK文件的路径。如:/sdcard/download/XX.apk * @return */ public static String getVersionNameFromApk(Context context, String archiveFilePath) { PackageManager pm = context.getPackageManager(); PackageInfo packInfo = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES); String version = packInfo.versionName; return version; }
assets.setConfiguration(0, 0, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Build.VERSION.RESOURCES_SDK_INT); parser = assets.openXmlResourceParser(cookie, ANDROID_MANIFEST_FILENAME);
追踪源码可以看到,系统其实是对该apk文件的AndroidManifest.xml文件进行解析
上一篇: 第十四节命名空间[14]_PHP