Get android:versionName manifest element in code

I want to know how to parse the AndroidManifest.xml file in order to get the Application Version Number through code. android:versionName

  • How to develop Augmented Reality application for Android
  • Why does Cordova/Phonegap append 8 to my Android Version Code?
  • Android adb (OSX Lion) does not recognize Galaxy Nexus, Jelly Bean
  • SINGLE_TOP | CLEAR_TOP seem to work 95% of the time. Why the 5%?
  • Android 4.0 ICS turning HttpURLConnection GET requests into POST requests
  • Type Safety warning with JSON Iterator
  • Android MVP open Activity from Presenter, anti-pattern?
  • How to add source + javadoc for android-support-v7?
  • Firebase Data Desc Sorting in Android
  • How to limit the height of Spinner drop down view in Android
  • What is EGL and GL mtrack in Android Memory Dump
  • Why is adding an OnClickListener inside onBindViewHolder of a RecyclerView.Adapter considered bad practice?
  • 4 Solutions collect form web for “Get android:versionName manifest element in code”

    No need to parse the AndroidManifest.xml file for this.

    You can get this by using:

    try
    {
        String app_ver = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
    }
    catch (NameNotFoundException e)
    {
        Log.e(tag, e.getMessage());
    }
    

    Use this inside your onCreate() method.

    In case this is helpful to anyone else, you can also access @string resources from AndroidManifest.xml like you can from other xml files.

    So for example, in AndroidManifest.xml:

    android:versionName="@string/app_versionName"
    

    and in code:

    string versionName = getResources().getString(R.string.app_versionName);
    

    This way you don’t need the (annoying, imo) try/catch statement. I’m not sure if this is an approved way of doing things, but it makes sense to me.

    If you’re using the Android Studio, the version name is available in the class BuildConfig. This class in generated at compile time:

    String versionName = BuildConfig.VERSION_NAME;
    

    This is the cleanest way retrieving the version name.

    So far, i used the below code snippet from this article and successfully got the version code and version name from AndroidManifest.xml

    /* Get android:versionName */
    String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
    
    /* Get android:versionCode */
    int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.