nileshbirhade
nileshbirhade

Reputation: 837

How do I get my application Version in Android

Can anyone tell me how to get the application version in Android?

Upvotes: 57

Views: 83627

Answers (14)

Sadique Khan
Sadique Khan

Reputation: 320

here is how you can do it

        String versionName = BuildConfig.VERSION_NAME;
        String release = Build.VERSION.RELEASE;
        int sdkVersion = Build.VERSION.SDK_INT;

Make sure to add any missing part from build.gradle(app)

android {
    namespace = "com.your.www.package"
    compileSdk = 34

    buildFeatures{
        buildConfig = true
    }

    defaultConfig {
        applicationId = "com.your.www.package"
        minSdk = 21
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

    }
}

Upvotes: 0

Yosidroid
Yosidroid

Reputation: 2233

If you are using the latest build gradle 8.0.0 or above in build.gradle (project level) like below

classpath 'com.android.tools.build:gradle:8.0.0'

First, add below code in build.gradle(app module) within android block, and rebuild Project

android {
    buildFeatures {
       buildConfig = true
    }
}

then you can get version code and version name programmatically from your activity or fragment as follows:

int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;

Upvotes: 3

Bajrang Hudda
Bajrang Hudda

Reputation: 3268

In your (Module: app) gradle define the version name and version code

defaultConfig {
        applicationId "com.sing.smart"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.1.0"
    }

versionCode

The versionCode is an integer value used to easily differentiate between app versions.

App developers must increment this value when they release updates to their apps in Android Market, so it can determine if users are using an old version of the app, and offer them to update it.

versionName

The versionName is a string containing a regular “release version” as seen in other desktop applications, such as “1.4.5” or “3.7”.

The versionName is just a “human readable” version code.

PackageInfo pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);  
int versionNumber = pinfo.versionCode;  
String versionName = pinfo.versionName;

Upvotes: 2

Ramesh R
Ramesh R

Reputation: 7077

Java

String versionCode = String.valueOf(BuildConfig.VERSION_CODE);
String versionName = String.valueOf(BuildConfig.VERSION_NAME);

Kotlin

val versionCode = BuildConfig.VERSION_CODE
val versionName = BuildConfig.VERSION_NAME

Upvotes: 1

umi
umi

Reputation: 157

If you are using eclipse try this:

PackageInfo packageInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0);
int versionCode = packageInfo.versionCode;
String version = packageInfo.versionName;

In Android Studio :

int versionCode = BuildConfig.VERSION_CODE;
String versionName = BuildConfig.VERSION_NAME;

make sure you have mansion version code in your module-level build.gradle file

Upvotes: 4

Jenis Kasundra
Jenis Kasundra

Reputation: 583

In kotlin :

fun getAppVersionName(context: Context): String {
        var appVersionName = ""
        try {
            appVersionName =
                context.packageManager.getPackageInfo(context.packageName, 0).versionName
        } catch (e: PackageManager.NameNotFoundException) {
            e.printStackTrace()
        }
        return appVersionName
    }



fun getAppVersionCode(context: Context): Long {
        var appVersionCode = 0L
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                appVersionCode =
                    context.packageManager.getPackageInfo(context.packageName, 0).longVersionCode
            }
            else{
                appVersionCode =
                    context.packageManager.getPackageInfo(context.packageName, 0).versionCode.toLong()
            }
        } catch (e: PackageManager.NameNotFoundException) {
            e.printStackTrace()
        }
        return appVersionCode
    }

Upvotes: 0

Meisam
Meisam

Reputation: 408

The easiest and best answer I found is to just import your BuildConfig

import your.package.BuildConfig;

then just

String verName = BuildConfig.VERSION_NAME;
int verCode = BuildConfig.VERSION_CODE;

Upvotes: 10

Merlyn Morgan-Graham
Merlyn Morgan-Graham

Reputation: 59111

This page has a tips on how to do it from java:

PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(
    context.getPackageName(), 0);
String version = info.versionName;

Also, this link has official information on how to properly set up your application versioning.

Upvotes: 151

KAMAL VERMA
KAMAL VERMA

Reputation: 675

int versionCode = BuildConfig.VERSION_CODE;

String versionName = BuildConfig.VERSION_NAME;

Upvotes: 1

Anderson Fortaleza
Anderson Fortaleza

Reputation: 2459

On Nativescript (with Typescript) one can do like this:

import {Observable} from 'data/observable';
import * as applicationModule from 'application'

export class AboutViewModel extends Observable {
    public version: string;

    constructor() {
        super();
        let manager = applicationModule.android.context.getPackageManager();
        let info = manager.getPackageInfo(applicationModule.android.context.getPackageName(), 0);
        this.version = info.versionName;
    }
}

Upvotes: 0

Mitul Nakum
Mitul Nakum

Reputation: 5574

public int getVersion(Context context) {
        try {
            PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            return pInfo.versionCode;
        } catch (NameNotFoundException e) {
            return 0;
        }
    }
}

More info on this link

Upvotes: 14

pkuszewski
pkuszewski

Reputation: 262

If you need it for scripting purposes (not for programming) you can use this command:

 adb shell "pm dump com.example.your.package.name | grep \"versionCode\"" | awk '{print $1}' | awk -F '=' '{print $2}'

Upvotes: 1

Jimmy Ilenloa
Jimmy Ilenloa

Reputation: 2009

I am using Android Studio, I realized I could use one line code to get this.

/*version name*/
BuildConfig.VERSION_NAME

/*version code*/
BuildConfig.VERSION_CODE

Edited:

If you are using other android libraries, make sure you import BuildConfig from your application package. This is similar to the automatically generated R class for identifying resources.

Upvotes: 75

Paresh Mayani
Paresh Mayani

Reputation: 128428

To get application information:

PackageManager manager = this.getPackageManager();
try {
   PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
   String packageName = info.packageName;
   int versionCode = info.versionCode;
   String versionName = info.versionName;
   } catch (NameNotFoundException e) {
   // TODO Auto-generated catch block
   }

Upvotes: 12

Related Questions