在网上找了一些代码,但是正确的概率很低,
请问有人做过这种判断吗?

解决方案 »

  1.   

    String agent = request.getHeader("User-Agent")
      

  2.   

    参考这个
    http://en.wikipedia.org/wiki/List_of_user_agents_for_mobile_phones
      

  3.   

    想要百分百识别PC或手机是不可能的,各个浏览器传递的userAgent参数格式不一样。通过判断IP来确定是手机用户,但只适用wap或net接入,3G手机与PC还是无法区分。我现在做的这个项目分别为PC和手机做了登陆页面,让用户自己选择从哪个地址接入。
      

  4.   

    我现在做的这个项目分别为PC和手机做了登陆页面,让用户自己选择从哪个地址接入。那你选择的界面采用的是wml还是html啊?
      

  5.   

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Enumeration<?> enumer = request.getHeaderNames();
    while (enumer.hasMoreElements()) {
    String name = (String) enumer.nextElement();
    out.println(name+"="+request.getHeader(name)+"\r\n");
    }
    out.flush();
    out.close();
    }分析一下手机端和PC登录时,user-agent的不同。
      

  6.   


     protected void Page_Load(object sender, EventArgs e)
        {
            HttpCapabilitiesBase r = (System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;
            string agent = (Request.UserAgent + "").ToLower().Trim();
         
            if (r.Browser == "Mozilla")
                Response.Write("可以识别:Mozilla");
            else
                Response.Write("不识别:Mozilla");
            if (r.IsMobileDevice || r.Browser == "Unknown" || r.Browser == "Mozilla")
            {
                Response.Write("手机" + "\r\n" + r.Browser + "\r\n" + r.Type);
            }
            else
            {
                Response.Write("电脑" + "\r\n" + r.Browser + "\r\n" + r.Type);
            } 
        }