第一步获取包名:packageName,方法很多,这里用apk未安装前的所在文件夹路径来获取包名
public static String getApkPackageName(Context context,String apkPath) { PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.getPackageArchiveInfo(apkPath, GET_ACTIVITIES); if (pi == null) return null; return pi.packageName; }
第二步:获取已经安装的apk的版本号,把第一步里获取的packageName传入方法里
public static int getPackageVersionCode(Context context, String packageName) {
//上下文,包名 PackageManager pm = context.getPackageManager(); PackageInfo pi = null; try { pi = pm.getPackageInfo(packageName, PackageManager.GET_CONFIGURATIONS); return pi.versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return 0; } }
第三步:获取文件夹下apk的版本号
public static int getApkVersionCode(Context context, String filePath) { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo = packageManager.getPackageArchiveInfo(filePath, GET_ACTIVITIES); if (null != packageInfo) { int versionCode = packageInfo.versionCode; return versionCode; } else { return 0; } }