在 Android 中获取当前应用程序的版本信息(版本号和版本名称)非常简单,可以使用 PackageManager
类中的 getPackageInfo()
方法。你可以通过这个方法获取到 versionCode
(内部版本号)和 versionName
(版本名称)。
以下是获取应用版本的详细代码:
Java 代码
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 调用获取应用版本信息的方法
getAppVersion();
}
// 获取应用版本信息
private void getAppVersion() {
try {
// 获取包管理器
PackageManager packageManager = getPackageManager();
// 获取当前应用的包名
String packageName = getPackageName();
// 通过包名获取包信息
PackageInfo packageInfo = packageManager.getPackageInfo(packageName, 0);
// 获取版本名称 (例如:1.0)
String versionName = packageInfo.versionName;
// 获取版本号 (例如:1)
int versionCode = packageInfo.versionCode;
// 打印版本信息
Log.d("AppVersion", "Version Name: " + versionName);
Log.d("AppVersion", "Version Code: " + versionCode);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
}
代码说明:
getPackageManager()
:获取系统的PackageManager
,用于获取应用程序的包信息。getPackageName()
:返回当前应用的包名。getPackageInfo(packageName, 0)
:通过包名获取PackageInfo
对象,PackageInfo
包含了应用程序的版本信息等。versionName
:这是应用的版本名称,通常用于用户界面中显示的版本。versionCode
:这是应用的内部版本号,每次发布新版本时应该递增,系统使用它来区分不同的应用版本。
使用的日志输出
日志中会输出当前的版本名称和版本号,你可以通过 Logcat
来查看这些信息:
D/AppVersion: Version Name: 1.0
D/AppVersion: Version Code: 1
扩展:
versionCode
是整数值,在 Android API 31(Android 12)之后改为long
类型。对于 Android 12 及以上,建议使用long
类型来处理版本号。- 如果需要在应用的界面中展示版本信息,可以将版本名称或者版本号赋值给
TextView
,显示在应用界面上。