我需要弄清楚如何获取或制作Android应用程序的版本号。我需要在UI中显示内部版本号。

我必须使用AndroidManifest.xml吗?


当前回答

package com.sqisland.android.versionview;

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

public class MainActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView textViewversionName = (TextView) findViewById(R.id.text);

    try {
        PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
        textViewversionName.setText(packageInfo.versionName);

    }
    catch (PackageManager.NameNotFoundException e) {

    }
  }
}

其他回答

对于API 28(Android 9(Pie)),PackageInfo.versionCode已弃用,因此请使用以下代码:

Context context = getApplicationContext();
PackageManager manager = context.getPackageManager();
try {
    PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0);
    myversionName = info.versionName;
    versionCode = (int) PackageInfoCompat.getLongVersionCode(info);
}
catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
    myversionName = "Unknown-01";
}

Use:

try {
    PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
    String version = pInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}

您可以使用以下命令获取版本代码

int verCode = pInfo.versionCode;

使用以下方法获取应用程序版本或内部版本代码,该代码用于通过APK文件的版本代码识别APK文件。版本代码用于检测更新、发布等时的实际构建配置。

int versionCode = BuildConfig.VERSION_CODE;

版本名称用于显示开发序列的用户或开发人员。您可以根据需要添加任何类型的版本名称。

String versionName = BuildConfig.VERSION_NAME;

非常简单:

   val manufacturer = Build.MANUFACTURER
   val model = Build.MODEL
   val version = Build.VERSION.SDK_INT
   val versionRelease = Build.VERSION.RELEASE

就写这个。

XML代码

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

初始化textview的变量

TextView appversion;

将textview id设置为变量

appversion = findViewById(R.id.appversion);

这是显示应用程序版本BuildConfig.version_NAME的主要代码,仅将其用作字符串值

textview.setText("v"+BuildConfig.VERSION_NAME);