1、应用场景
- 在界面显示App相关信息
- 后台根据该App版本号和最新版的区别来决定是否更新
2、具体步骤
在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,描述了包内容的整体信息,因此,可以使用PackageInfo对象的versionName属性获取应用的版本号。
3、代码实现
//版本名
public static String getVersionName(Context context) {
return getPackageInfo(context).versionName;
}
//版本号
public static int getVersionCode(Context context) {
return getPackageInfo(context).versionCode;
}
private static PackageInfo getPackageInfo(Context context) {
PackageInfo pi = null;
try {
PackageManager pm = context.getPackageManager();
pi = pm.getPackageInfo(context.getPackageName(),
PackageManager.GET_CONFIGURATIONS);
return pi;
} catch (Exception e) {
e.printStackTrace();
}
return pi;
}
4、.versionCode和.versionName的区别
versionCode的格式是x.x.x这种String类型的数据,而versionName的格式是x这种int类型的数据,开发者可以根据场景需求自己挑选方法。
5、getPackageInfo()方法说明
pi = pm.getPackageInfo(context.getPackageName(),
PackageManager.GET_CONFIGURATIONS);
在有的开源项目中,上面这段代码中方法的第二个参数可能被0所替代,那么到底第二个参数表达的意思是什么呢?请看官方API文档中的描述:
在这我先卖个关子,等以后再接触这块的内容,会继续在这里完善。
待续。