AndroidManifest.xml之<manifest android:versionCode android:versionName> element詳解

android:versionCode和android:versionName兩個字段分別表示版本代碼,版本名稱。versionCode是整型數字,versionName是字符串。versionName是給用戶看的,不太容易比較大小,升級檢查時,可以以檢查versionCode為主,方便比較出版本的前後大小。

在應用中如何讀取AndroidManifest.xml中的versionCode和versionName呢?可以使用PackageManager的API,參考以下代碼:

 

[html] 
public static int getVerCode(Context context) { 
        int verCode = -1; 
        try { 
            verCode = context.getPackageManager().getPackageInfo( 
                    "com.myapp", 0).versionCode; 
        } catch (NameNotFoundException e) { 
            Log.e(TAG, e.getMessage()); 
        } 
        return verCode; 
    } 
    
    public static String getVerName(Context context) { 
        String verName = ""; 
        try { 
            verName = context.getPackageManager().getPackageInfo( 
                    "com.myapp", 0).versionName; 
        } catch (NameNotFoundException e) { 
            Log.e(TAG, e.getMessage()); 
        } 
        return verName;    

public static int getVerCode(Context context) {
        int verCode = -1;
        try {
            verCode = context.getPackageManager().getPackageInfo(
                    "com.myapp", 0).versionCode;
        } catch (NameNotFoundException e) {
            Log.e(TAG, e.getMessage());
        }
        return verCode;
    }
  
    public static String getVerName(Context context) {
        String verName = "";
        try {
            verName = context.getPackageManager().getPackageInfo(
                    "com.myapp", 0).versionName;
        } catch (NameNotFoundException e) {
            Log.e(TAG, e.getMessage());
        }
        return verName;  
}

 

或者在AndroidManifest中將android:versionName="1.2.0"寫成android:versionName="@string/app_versionName",然後在values/strings.xml中添加對應字符串,這樣實現之後,就可以使用如下代碼獲得版本名稱:

[html] 
public static String getVerName(Context context) { 
        String verName = context.getResources() 
        .getText(R.string.app_versionName).toString(); 
        return verName; 

public static String getVerName(Context context) {
        String verName = context.getResources()
        .getText(R.string.app_versionName).toString();
        return verName;
}
同理,apk的應用名稱可以這樣獲得:

[html] 
public static String getAppName(Context context) { 
        String verName = context.getResources() 
        .getText(R.string.app_name).toString(); 
        return verName; 

public static String getAppName(Context context) {
        String verName = context.getResources()
        .getText(R.string.app_name).toString();
        return verName;
}

 

You May Also Like