Android 获取当前应用的版本号+版本号比较
2024-10-20 16:16:50
前言:因为项目更新的时候需要一些版本号的信息,后台返回两个string,一个是最低兼容版,一个是最新版。所以拿到数据后要比较一下,所以封装了一个Common包来处理。
Step 1
废话不多说,直接上代码。
public class Common{
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static String getVersion(Context context) {
try {
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
String version = info.versionName;
return version;
} catch (Exception e) {
e.printStackTrace();
return "";
}
} /**
* 版本号比较
*
* @param version1
* @param version2
* @return
*/
public static int compareVersion(String version1, String version2) {
if (version1.equals(version2)) {
return 0;
}
String[] version1Array = version1.split("\\.");
String[] version2Array = version2.split("\\."); int index = 0;
// 获取最小长度值
int minLen = Math.min(version1Array.length, version2Array.length);
int diff = 0;
// 循环判断每位的大小
Log.d("HomePageActivity", "verTag2=2222="+version1Array[index]);
while (index < minLen
&& (diff = Integer.parseInt(version1Array[index])
- Integer.parseInt(version2Array[index])) == 0) {
index++;
}
if (diff == 0) {
// 如果位数不一致,比较多余位数
for (int i = index; i < version1Array.length; i++) {
if (Integer.parseInt(version1Array[i]) > 0) {
return 1;
}
} for (int i = index; i < version2Array.length; i++) {
if (Integer.parseInt(version2Array[i]) > 0) {
return -1;
}
}
return 0;
} else {
return diff > 0 ? 1 : -1;
}
} }
Step 2
使用方法:
如何获取版本号: Common.getVersion(context)
如何比较版本号: Common.compareVersion(Common.getVersion(context),“要比较的版本号”)
1.上面的值为-1 代表:前者小于后者
2.上面的值为0 代表:两者相等
3.上面的值为1 代表:前者大于后者
最新文章
- maven核心概念4
- 问题-delphi 程序在某电脑中显示???问号 乱码
- Linux基础(二)
- MVC学习笔记3 - JsRender
- [转]android4.0.3 修改启动动画和开机声音
- Cocos2d-X 精灵、动作效果
- [记录]Zabbix3.4配置监控Oracle12c的存活状态和表空间使用率
- windows相关命令记录
- Python排序算法——选择排序
- Java基础--枚举
- &#39;RegAsm.exe&#39; 不是内部或外部命令
- 如何简单地理解Python中的if __name__ == &#39;__main__&#39;(https://blog.csdn.net/yjk13703623757/article/details/77918633)
- memcache、redis、mongoDB 如何选择?
- SQL Server跨服务器建立视图
- weblogic配置集群(二)
- Java 对象初始化生命周期
- Writing a Kernel in C++
- javascript——对象的概念——函数 1 (函数对象的属性和方法)
- 小程序里打开app的实现过程
- java 24小时倒计时案例
热门文章
- 利用XML序列化和Asp.Net Web缓存实现站点配置文件
- node官方docker镜像运行bower 提示 permission denied 解决方法
- Nobody gives away anything valuable for free.
- Android 超简单的拖动按钮 悬浮按钮 吸附按钮
- 在window下, Java调用执行bat脚本
- 解决mysql连接输入密码提示Warning: Using a password on the command line interface can be insecure
- FPGA工具篇——编辑器Notepad++
- pta编程题19 Saving James Bond 2
- pat乙级1034
- IOS 强指针(strong)和弱指针(weak)