Get Android .apk file VersionName or VersionCode WITHOUT installing apk
How can I get programmatically get the version code or version name of my apk from the AndroidManifest.xml file after downloading it and without installing it.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.xx.xxx"
android:versionCode="1"
android:versionName="1.1" >
For example I want to check if a new version is uploaded on my IIS service, after install it on device, if it is not a new version I don't want to install it.
Solution 1:
Following worked for me from the command line:
aapt dump badging myapp.apk
NOTE: aapt.exe is found in a build-tools
sub-folder of SDK. For example:
<sdk_path>/build-tools/23.0.2/aapt.exe
Solution 2:
final PackageManager pm = getPackageManager();
String apkName = "example.apk";
String fullPath = Environment.getExternalStorageDirectory() + "/" + apkName;
PackageInfo info = pm.getPackageArchiveInfo(fullPath, 0);
Toast.makeText(this, "VersionCode : " + info.versionCode + ", VersionName : " + info.versionName , Toast.LENGTH_LONG).show();