zoukankan      html  css  js  c++  java
  • 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 }
    View Code

      Step 2

      使用方法:

      如何获取版本号:   Common.getVersion(context)  

      如何比较版本号:   Common.compareVersion(Common.getVersion(context),“要比较的版本号”)

                                          1.上面的值为-1 代表:前者小于后者

                2.上面的值为0 代表:两者相等

                  3.上面的值为1 代表:前者大于后者 

    既然选择了,便不顾风雨兼程。Just follow yourself.
  • 相关阅读:
    新学期——扬帆起航
    我与虚拟机的爱恨情仇
    20155329胡佩伦的第二次预备作业——再思考
    课前的第一次与老师交流
    # 20155327 2016-20017-3 《Java程序设计》第3周学习总结
    20155327《Java程序设计》第二周学习总结
    20155327 2016-2017-2 《Java程序设计》第一周学习总结
    20155327第三次作业
    20155327 学习基础和C语言基础调查
    记自己的第一篇博客
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/7590689.html
Copyright © 2011-2022 走看看