Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android APP 讀取 AndroidManifest.xml 中的版本信息詳解,androidmanifest.xml

Android APP 讀取 AndroidManifest.xml 中的版本信息詳解,androidmanifest.xml

編輯:關於android開發

Android APP 讀取 AndroidManifest.xml 中的版本信息詳解,androidmanifest.xml


APP都會涉及到版本的問題,Android APP的版本信息保存在AndroidManifest.xml文件的頂部。如下圖:

有2個屬性表示,“android:versionCode”和“android:versionName”,其中versionCode是int類型,是給程序用的,一般版本控制就用這個,versionName是String類型,是給用戶看的,比如在APP的關於頁面,顯示當前版本。新建的工程中versionCode默認是1,versionName默認是1.0。

下面來用程序讀取一下這2個屬性。

布局文件代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="APP版本信息:" />

    <TextView
        android:id="@+id/tvVersion"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Activity代碼如下:

package chengyujia.androidtest;

import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.widget.TextView;

public class VersionActivity extends Activity {

    private TextView tvVersion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_version);
        tvVersion = (TextView) findViewById(R.id.tvVersion);
        showVersion();
    }

    private void showVersion() {
        // 在Activity中可以直接調用getPackageManager(),獲取PackageManager實例。
        PackageManager packageManager = getPackageManager();
        // 在Activity中可以直接調用getPackageName(),獲取安裝包全名。
        String packageName = getPackageName();
        // flags提供了10種選項,及其組合,如果只是獲取版本號,flags=0即可
        int flags = 0;
        PackageInfo packageInfo = null;
        try {
            // 通過packageInfo即可獲取AndroidManifest.xml中的信息。
            packageInfo = packageManager.getPackageInfo(packageName, flags);
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }

        if (packageInfo != null) {
            // 這裡就拿到版本信息了。
            int versionCode = packageInfo.versionCode;
            String versionName = packageInfo.versionName;
            tvVersion.setText("versionCode=" + versionCode + "\nversionName=" + versionName);
        }
    }
}

運行看一下效果:

上圖顯示的是默認值,當我們的APP發布新版本時,需要在AndroidManifest.xml中修改這兩個值,其中versionCode是int類型,一般從1開始自增,如果賦予非int類型的值會報錯,比如下圖:

而versionName是String類型的,只要是字符串就行,比如下圖:

下面運行看一下截圖:

版本信息讀取就寫這些吧,該吃晚飯喽^_^

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved