User-agent获取手机类型

  • 网上找的方法不能精确显示型号,对iphone无法取出
  • 改良后,代码如下,还需进一步验证修改:
package org.mice.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 
 * 类名称:MiceUtils.java 
 * 类描述:经常使用的类方法
 * 
 * @author chenph
 * @CreateDate:2015年5月16日
 * @version 1.0
 */
public class MiceUtils {
	// 从user-agent中取出手机类型
	//static Pattern pattern = Pattern.compile(";\\s?(\\S*?\\s?\\S*?)\\s?(Build)?/");  
	static Pattern pattern = Pattern.compile(";\\s?[^;\\s]*?(\\s?\\S*?)\\s?(Build)?/");  
	
	/**
	 * 获取手机类型
	 * @param agent
	 * @return
	 */
	public static String getMobileType(String agent){
		if(agent.indexOf("iPhone") != -1){
			return "iPhone";
		}
	    Matcher matcher = pattern.matcher(agent);  
	    String model = null;  
	    if (matcher.find()) {  
	        model = matcher.group(1).trim();  
	        return model;
	    }  
	    return "";
	}
	
	public static void main(String args[]){
		//String agent = "Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; XT1079 Build/LXB22.99-7.1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/10.4.0.558 U3/0.8.0 Mobile Safari/534.30";
		String agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/12D508 UCBrowser/10.4.5.568 Mobile";
		System.out.println(MiceUtils.getMobileType(agent));
	}
}


你可能感兴趣的:(Java)