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 代表:前者大於后者 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM