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;
  }
Example #4
0
  public static void main(String[] args) {
    String nokia =
        "Nokia7610/2.0 (5.0509.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0";
    String nokia2 = "Nokia8310/1.0 (05.11) UP.Link/6.5.0.0.06.5.0.0.06.5.0.0.06.5.0.0.0";
    String nokiaN8 =
        "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/012.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.0 Mobile Safari/533.4 3gpp-gba";
    String nokiax3 =
        "Mozilla/5.0 (Series40; NokiaX3-02/le6.32; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/1.0.0.11.8";
    String nikiaN97 =
        "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/12.0.024; Profile/MIDP-2.1 Configuration/CLDC-1.1; en-us) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.12344";
    String nokiaN5700 = "NOKIA5700/UCWEB7.0.2.37/28/999";

    String HTCMiui =
        "HTC miui默认浏览器 :Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; HTC HD2 Build/MIUI) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
    String otherAndroid =
        "Mozilla/5.0 (Linux; U; Android 2.2; nl-nl; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
    String otherAndroid2 =
        "Mozilla/5.0 (Linux; U; Android 1.6; en-us; WOWMobile myTouch 3G Build/unknown) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1";
    String m9 =
        " Mozilla/5.0 (Linux; U; Android 2.2; zh-cn; meizu_m9 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
    String m92 = "JUC (Linux; U; 2.2; zh-cn; meizu_m9; 640*960) UCWEB7.9.0.94/139/800";
    String sonyEricsson =
        "Mozilla/5.0 (Linux; U; Android 2.1-update1; zh-cn; SonyEricssonE15i Build/2.0.1.A.0.47) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17";
    String sonyEricsson2 =
        "Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17";
    String motorola =
        "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Droid Build/ESE81) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17";
    String googleNexus =
        "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
    String samsung =
        "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";

    String iphone =
        "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; zh-cn)     AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7";
    String iphoneUc = "IUC(U;iOS 4.1;Zh-cn;320*480;)/UCWEB8.0.3.99/41/997";
    String ipad =
        "mozilla/5.0 (ipad;U;Cpu os 3_2 like mac os X;zh-ch) applewebkit/ 531.21.10(khtml,like gecko) version/4.0.4 mobile/7B367 safari/531.21.10";

    String winphone = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5)";

    String qqbrowser = "symbianos/8.0 series60/2.6";

    String userAgent = ipad;

    boolean isMobile = isMobile(userAgent);
    System.out.println("是不是手机设备:" + isMobile);

    String mobile = getMobileModel(userAgent);
    System.out.println("手机品牌是: " + mobile);

    MobileVersion mobileOs = getMobileOs(userAgent);
    if (mobileOs != null) {
      System.out.println("手机系统类型是: " + mobileOs.getType());
      System.out.println("手机系统版本号是: " + mobileOs.getVersion());
    } else {
      System.out.println("手机系统获取错误");
    }

    MobileVersion mobileBrowser = getMobileBrowser(userAgent);
    if (mobileBrowser != null) {
      System.out.println("手机浏览器类型是: " + mobileBrowser.getType());
      System.out.println("手机浏览器版本号是: " + mobileBrowser.getVersion());
    } else {
      System.out.println("手机浏览器获取出错");
    }
  }