Example #1
0
  private static MobileVersion verifyMobileBrowser(String browser) {
    if (browser == null) return null;
    browser = browser.trim();
    String[] strs = new String[2];
    strs[1] = browser;
    for (int i = 0; i < browser.length(); i++) {
      char c = browser.charAt(i);
      if (Character.isDigit(c) || c == ' ') {
        strs[0] = browser.substring(0, i);
        break;
      }
    }

    MobileVersion version = new MobileVersion();
    version.setType(strs[0]);
    version.setVersion(browser);
    return version;
  }
Example #2
0
  private static MobileVersion verifyMobileOs(String mobileOs) {
    if (mobileOs == null) return null;

    mobileOs = mobileOs.replace("_", ".");
    mobileOs = mobileOs.replace("/", " "); // for nokia

    if (mobileOs.indexOf("iphone") != -1) mobileOs = mobileOs.replace("iphone os", "ios");
    if (mobileOs.equals("ios")) mobileOs = "ios";
    if (mobileOs.indexOf("cpu os") != -1) mobileOs = mobileOs.replace("cpu os", "ios");
    if (mobileOs.indexOf("symbianos") != -1) mobileOs = mobileOs.replace("symbianos", "symbian");
    if (mobileOs.equals("series60") || mobileOs.equals("series40")) mobileOs = "symbian";

    String[] strs = mobileOs.split(" ");
    MobileVersion version = new MobileVersion();
    version.setType(strs[0]);
    version.setVersion(mobileOs);

    return version;
  }
Example #3
0
  public static MobileVersion getMobileBrowser(String userAgent) {
    userAgent = userAgent.toLowerCase();

    Matcher matcher = mobileBrowserUcsPattern.matcher(userAgent);
    while (matcher.find()) {
      for (int i = 1; i <= matcher.groupCount(); i++) {
        String mobile = matcher.group(i);
        if (mobile != null && mobile.length() > 0) {
          MobileVersion version = verifyMobileBrowser(mobile);

          return version;
        }
      }
    }

    matcher = mobileBrowserQQPattern.matcher(userAgent);
    while (matcher.find()) {
      String safariVersion = matcher.group(1);
      MobileVersion version = new MobileVersion();
      version.setType("qq");
      version.setVersion("qq " + safariVersion);
      return version;
    }

    matcher = mobileBrowserChromePattern.matcher(userAgent);
    while (matcher.find()) {
      String safariVersion = matcher.group(1);
      MobileVersion version = new MobileVersion();
      version.setType("chrome");
      version.setVersion("chrome " + safariVersion);
      return version;
    }

    matcher = mobileBrowserOperaPattern.matcher(userAgent);
    while (matcher.find()) {
      String safariVersion = matcher.group(1);
      MobileVersion version = new MobileVersion();
      version.setType("opera");
      version.setVersion("opera " + safariVersion);
      return version;
    }

    matcher = mobileBrowserSafariPattern.matcher(userAgent);
    while (matcher.find()) {
      String safariVersion = matcher.group(1);
      MobileVersion version = new MobileVersion();
      version.setType("safari");
      version.setVersion("safari " + safariVersion);
      return version;
    }

    matcher = mobileBrowserIePattern.matcher(userAgent);
    while (matcher.find()) {
      String ieVersion = matcher.group(1);
      MobileVersion version = new MobileVersion();
      version.setType("ie");
      version.setVersion("ie " + ieVersion);
      return version;
    }

    matcher = mobileBrowserNokiaPattern.matcher(userAgent);
    while (matcher.find()) {
      for (int i = 1; i <= matcher.groupCount(); i++) {
        String nokiaVersion = matcher.group(i);
        if (nokiaVersion == null || nokiaVersion.length() == 0) continue;
        MobileVersion version = new MobileVersion();
        version.setType(nokiaVersion);
        if (matcher.groupCount() > i) version.setVersion(nokiaVersion + " " + matcher.group(i + 1));
        else version.setVersion(nokiaVersion);
        return version;
      }
    }

    return null;
  }