⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deviceconfigdetector.java

📁 检测手机浏览器是否支持PDF、javaScript、gif、jpeg、HTML、XHTML、WML、PNG、CSS等
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		}
	}

	public static String getManufacturer(String userAgent, String browserType) {
		if (userAgent == null)
			return BrowserConstants.UNKNOWN;
		if (userAgent.indexOf(BrowserConstants.MANUFACTURER_OPENWAVE) != -1) {
			return BrowserConstants.MANUFACTURER_OPENWAVE;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_NOKIA) != -1) {
			return BrowserConstants.MANUFACTURER_NOKIA;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_MOTOROLA) != -1) {
			return BrowserConstants.MANUFACTURER_MOTOROLA;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SIEMENS_2) != -1) {
			return BrowserConstants.MANUFACTURER_SIEMENS_1;
		} else if (userAgent
				.indexOf(BrowserConstants.MANUFACTURER_SONY_ERICSSON) != -1) {
			return BrowserConstants.MANUFACTURER_SONY_ERICSSON;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_ERICSSON) != -1) {
			return BrowserConstants.MANUFACTURER_ERICSSON;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SHARP) != -1) {
			return BrowserConstants.MANUFACTURER_SHARP;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SAMSUNG_1) != -1) {
			return BrowserConstants.MANUFACTURER_SAMSUNG_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SAMSUNG_2) != -1) {
			// still use MANUFACTURER_SAMSUNG_1 name
			return BrowserConstants.MANUFACTURER_SAMSUNG_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SAMSUNG_3) != -1) {
			// still use MANUFACTURER_SAMSUNG_1 name
			return BrowserConstants.MANUFACTURER_SAMSUNG_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SONY) != -1) {
			return BrowserConstants.MANUFACTURER_SONY;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SANYO) != -1) {
			return BrowserConstants.MANUFACTURER_SANYO;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_RIM_1) != -1) {
			return BrowserConstants.MANUFACTURER_RIM_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_RIM_2) != -1) {
			return BrowserConstants.MANUFACTURER_RIM_2;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_VODAFONE_1) != -1) {
			return BrowserConstants.MANUFACTURER_VODAFONE_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_VODAFONE_2) != -1) {
			// still use MANUFACTURER_VODAFONE_1 name
			return BrowserConstants.MANUFACTURER_VODAFONE_1;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_ALCATEL) != -1) {
			return BrowserConstants.MANUFACTURER_ALCATEL;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_MICROSOFT) != -1) {
			return BrowserConstants.MANUFACTURER_MICROSOFT;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_MITSUBISHI) != -1) {
			return BrowserConstants.MANUFACTURER_MITSUBISHI;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_PANASONIC) != -1) {
			return BrowserConstants.MANUFACTURER_PANASONIC;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_PHILIPS) != -1) {
			return BrowserConstants.MANUFACTURER_PHILIPS;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_PALM) != -1) {
			return BrowserConstants.MANUFACTURER_PALM;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_LG_2) != -1) {
			return BrowserConstants.MANUFACTURER_LG;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_ARIMA) != -1) {
			return BrowserConstants.MANUFACTURER_ARIMA;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_CECT) != -1) {
			return BrowserConstants.MANUFACTURER_CECT;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_COMPAL) != -1) {
			return BrowserConstants.MANUFACTURER_COMPAL;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_CTL) != -1) {
			return BrowserConstants.MANUFACTURER_CTL;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_TCL) != -1) {
			return BrowserConstants.MANUFACTURER_TCL;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_TDG) != -1) {
			return BrowserConstants.MANUFACTURER_TDG;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_BIRD) != -1) {
			return BrowserConstants.MANUFACTURER_BIRD;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_BIRD_2) != -1) {
			return BrowserConstants.MANUFACTURER_BIRD_2;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_DAXIAN) != -1) {
			return BrowserConstants.MANUFACTURER_DAXIAN;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_DAXIAN_2) != -1) {
			return BrowserConstants.MANUFACTURER_DAXIAN_2;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_DBTEL) != -1) {
			return BrowserConstants.MANUFACTURER_DBTEL;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_EASTCOM) != -1) {
			return BrowserConstants.MANUFACTURER_EASTCOM;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_EASTCOM_2) != -1) {
			return BrowserConstants.MANUFACTURER_EASTCOM_2;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_PANTECH) != -1) {
			return BrowserConstants.MANUFACTURER_PANTECH;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_DAXIAN) != -1) {
			return BrowserConstants.MANUFACTURER_DOPOD;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_HAIER) != -1) {
			return BrowserConstants.MANUFACTURER_HAIER;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_HAIER_2) != -1) {
			return BrowserConstants.MANUFACTURER_HAIER;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_KONKA) != -1) {
			return BrowserConstants.MANUFACTURER_KONKA;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_KEJIAN) != -1) {
			return BrowserConstants.MANUFACTURER_KEJIAN;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_KEJIAN_2) != -1) {
			return BrowserConstants.MANUFACTURER_KEJIAN;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_LENOVO) != -1) {
			return BrowserConstants.MANUFACTURER_LENOVO;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_4THPASS) != -1) {
			return BrowserConstants.MANUFACTURER_4THPASS;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_ACER) != -1) {
			return BrowserConstants.MANUFACTURER_ACER;
		} else if (userAgent.indexOf(BrowserConstants.MANUFACTURER_SAGEM) != -1) {
			return BrowserConstants.MANUFACTURER_SAGEM;
		} else if (browserType.equals(BrowserConstants.BROWSER_EZWAP)) {
			return BrowserConstants.MANUFACTURER_EZOS;
		} else if (browserType.equals(BrowserConstants.BROWSER_JBROWSER)) {
			return BrowserConstants.MANUFACTURER_JATAAYU;
		} else {
			return BrowserConstants.UNKNOWN;
		}
	}

	public static String getMIDP(String userAgent) {
		String info = BrowserConstants.UNKNOWN;
		int index = userAgent.indexOf("MIDP");
		String infoStr = null;
		if (index != -1) {
			if (index + 10 < userAgent.length()) {
				infoStr = userAgent.substring(index + 4, index + 10);
			} else {
				infoStr = userAgent.substring(index + 4);
			}
			if (infoStr.indexOf("1.0") != -1) {
				info = "1.0";
			} else if (infoStr.indexOf("2.0") != -1) {
				info = "2.0";
			}
		}
		return info;
	}

	public static String getCLDC(String userAgent) {
		String info = BrowserConstants.UNKNOWN;
		int index = userAgent.indexOf("CLDC");
		String infoStr = null;
		if (index != -1) {
			if (index + 10 < userAgent.length()) {
				infoStr = userAgent.substring(index + 4, index + 10);
			} else {
				infoStr = userAgent.substring(index + 4);
			}
			if (infoStr.indexOf("1.0") != -1) {
				info = "1.0";
			} else if (infoStr.indexOf("1.1") != -1) {
				info = "1.1";
			}
		}
		return info;
	}

	// currently, only the prefered language will be returned. So the
	// String[] will have at most one element.
	public static final String[] getLanguages(String acceptLanguage) {
		if (acceptLanguage == null || acceptLanguage.equals("")) {
			return new String[0];
		}
		int index = acceptLanguage.indexOf(",");
		if (index != -1) {
			acceptLanguage = acceptLanguage.substring(0, index);
		}
		int index2 = acceptLanguage.indexOf("-");
		if (index2 != -1) {
			acceptLanguage = acceptLanguage.substring(0, index2);
		}
		Locale locale = new Locale(acceptLanguage.trim());
		String preferedLanguage = locale.getDisplayLanguage(Locale.ENGLISH);
		if (preferedLanguage == null || preferedLanguage.equals("")) {
			return new String[0];
		} else {
			return new String[] { preferedLanguage };
		}
	}

	// for test

	private static final void printParams(String userAgent, String accept,
			String acceptCharset, String acceptLanguage) {
		System.out.println("userAgent --- " + userAgent);
		System.out.println("accept --- " + accept);
		System.out.println("acceptCharset --- " + acceptCharset);
		System.out.println("acceptLanguage --- " + acceptLanguage);
	}

	// special rules must be placed in mumbered sequence

	/*
	 * If it is a web browser, set HTMLSupport to true;
	 */
	private static final DeviceConfig specialRule_10_AcceptAll(String accept,
			DeviceConfig config) {
		if (!config.isMobileBrowser()) {
			config.setSupported_HTML(true);
		}
		return config;
	}

	/*
	 * If it is a MSIE browser, set MANUFACTURER to "Microsoft";
	 */
	private static final DeviceConfig specialRule_20_MANUFACTURER_of_MSIE(
			DeviceConfig config) {
		if (config.getUser_agent().indexOf(BrowserConstants.OS_WIN_CE) != -1) {
			config.setMobileBrowser(true);
			config.setManufacturer(BrowserConstants.MANUFACTURER_MICROSOFT);
			if (config.getBrowser().equals(BrowserConstants.UNKNOWN)) {
				config.setBrowser(BrowserConstants.OS_WIN_CE);
			} else {
				config.setBrowser(config.getBrowser() + "/"
						+ BrowserConstants.OS_WIN_CE);
			}
		} else if (config.getBrowser().equals("MSIE")) {
			config.setManufacturer(BrowserConstants.MANUFACTURER_MICROSOFT);
		}
		return config;
	}

	/*
	 * If it is a Firefox browser, set MANUFACTURER to "Mozilla";
	 */
	private static final DeviceConfig specialRule_30_MANUFACTURER_of_Firefox(
			DeviceConfig config) {
		if (config.getBrowser().equals("Firefox")) {
			config.setManufacturer(BrowserConstants.MANUFACTURER_FIREFOX);
		}
		return config;
	}

	/*
	 * If it is a BlackBerry or RIM browser, it must be a mobile browser;
	 */
	private static final DeviceConfig specialRule_40_MANUFACTURER_of_BlackBerry(
			DeviceConfig config) {
		if (config.getManufacturer().equalsIgnoreCase(
				BrowserConstants.MANUFACTURER_RIM_1)
				|| config.getManufacturer().equalsIgnoreCase(
						BrowserConstants.MANUFACTURER_RIM_2)) {
			config.setMobileBrowser(true);
		}
		return config;
	}

	/*
	 * If it is a iPhone, it must be a mobile browser;
	 */
	private static final DeviceConfig specialRule_50_IPhone(DeviceConfig config) {
		if (config.getUser_agent().indexOf(BrowserConstants.BROWSER_IPHONE) != -1
				&& config.getUser_agent().indexOf("Mobile") != -1) {
			config.setMobileBrowser(true);
			config.setBrowser(BrowserConstants.BROWSER_IPHONE);
			config.setManufacturer(BrowserConstants.MANUFACTURER_APPLE);
		}
		return config;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -