通過判斷用戶的客戶端的user-agent信息來區分用戶設備
可以滿足大部分用戶的設備判斷要求,若用戶對自己的user-agent進行篡改,會導致當前的判斷失效,當然了還需要結合其他信息,畢竟沒有一勞永逸的
String requestHeader = request.getHeader("user-agent");
if (isMobileDevice(requestHeader)) {
//移動設備
}
public static boolean isMobileDevice(String requestHeader) {
/**
* android : 所有android設備 mac os : iphone ipad windows
* phone:Nokia等windows系統的手機
*/
String[] deviceArray = new String[] { "Android", "iPhone", "MQQBrowser", "UCWEB", "Windows Phone", "iPod", "iPad", "BlackBerry", "hp-tablet",
"SymbianOS" };
if (requestHeader == null)
return false;
requestHeader = requestHeader.toLowerCase();
if (!requestHeader.contains("Windows NT".toLowerCase()) && !requestHeader.contains("Macintosh".toLowerCase())) {
for (String device : deviceArray) {
if (requestHeader.contains(device.toLowerCase())) {
return true;
}
}
}
return false;
}