Android 获取当前应用的版本号+版本号比较
前言:因为项目更新的时候需要一些版本号的信息,后台返回两个string,一个是最低兼容版,一个是最新版。所以拿到数据后要比较一下,所以封装了一个Common包来处理。
Step 1
废话不多说,直接上代码。
1 public class Common{ 2 /** 3 * 获取版本号 4 * 5 * @return 当前应用的版本号 6 */ 7 public static String getVersion(Context context) { 8 try { 9 PackageManager manager = context.getPackageManager(); 10 PackageInfo info = manager.getPackageInfo(context.getPackageName(), 11 0); 12 String version = info.versionName; 13 return version; 14 } catch (Exception e) { 15 e.printStackTrace(); 16 return ""; 17 } 18 } 19 20 /** 21 * 版本号比较 22 * 23 * @param version1 24 * @param version2 25 * @return 26 */ 27 public static int compareVersion(String version1, String version2) { 28 if (version1.equals(version2)) { 29 return 0; 30 } 31 String[] version1Array = version1.split("\\."); 32 String[] version2Array = version2.split("\\."); 33 34 int index = 0; 35 // 获取最小长度值 36 int minLen = Math.min(version1Array.length, version2Array.length); 37 int diff = 0; 38 // 循环判断每位的大小 39 Log.d("HomePageActivity", "verTag2=2222="+version1Array[index]); 40 while (index < minLen 41 && (diff = Integer.parseInt(version1Array[index]) 42 - Integer.parseInt(version2Array[index])) == 0) { 43 index++; 44 } 45 if (diff == 0) { 46 // 如果位数不一致,比较多余位数 47 for (int i = index; i < version1Array.length; i++) { 48 if (Integer.parseInt(version1Array[i]) > 0) { 49 return 1; 50 } 51 } 52 53 for (int i = index; i < version2Array.length; i++) { 54 if (Integer.parseInt(version2Array[i]) > 0) { 55 return -1; 56 } 57 } 58 return 0; 59 } else { 60 return diff > 0 ? 1 : -1; 61 } 62 } 63 64 }
Step 2
使用方法:
如何获取版本号: Common.getVersion(context)
如何比较版本号: Common.compareVersion(Common.getVersion(context),“要比较的版本号”)
1.上面的值为-1 代表:前者小于后者
2.上面的值为0 代表:两者相等
3.上面的值为1 代表:前者大于后者
既然选择了,便不顾风雨兼程。Just follow yourself.