content: package ai.guiji.duix.sdk.client.util;
  
  import android.content.Context;
  import android.content.pm.PackageManager;
  
  public class SystemUtils {
  
      public static int getVersionCode(Context context) {
          try {
              return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
          } catch (PackageManager.NameNotFoundException e) {
              e.printStackTrace();
              return -1;
          }
      }
  
      public static String getVersionName(Context context) {
          try {
              return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
          } catch (PackageManager.NameNotFoundException e) {
              e.printStackTrace();
              return "";
          }
      }
  
      /**
       * 版本号比较
       *
       * @param version1
       * @param version2
       * @return
       */
      public static int compareVersion(String version1, String version2) {
          try {
              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;
              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;
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
          return -1;
      }
  }
  