?? deviceconfigdetector.java
字號:
}
}
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 + -