有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

web应用程序中的java检测设备类型

我们有一个基于Java的应用程序,其中我们希望检测发送请求的设备的设备类型(移动或桌面)

怎么可能呢


共 (6) 个答案

  1. # 1 楼答案

    你可以尝试使用Spring Mobile。有一些方便的课程可以解决这个问题

    Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest);
    if(currentDevice.isMobile()) { /* Mobile */ }
    if(currentDevice.isTablet()) { /* Tablet */ }
    if(currentDevice.isNormal()) { /* Desktop */ }
    
  2. # 2 楼答案

    你可以得到第三方软件解决方案。有很多开源软件。我以前使用过51Degrees.mobi's Java solution(也参与过他们的开源C解决方案)。点击该链接并点击下载按钮。站起来跑步相对容易

  3. # 4 楼答案

    您可以通过解析http头来获取设备信息

    String browserType = request.getHeader("User-Agent");
    

    您应该解析browserType以获取设备类型

    这可能会有帮助

      public String  getBrowserInfo( String Information )
      {
        String browsername = "";
        String browserversion = "";
        String browser = Information;
        if (browser.contains("MSIE"))
        {
          String subsString = browser.substring(browser.indexOf("MSIE"));
          String info[] = (subsString.split(";")[0]).split(" ");
          browsername = info[0];
          browserversion = info[1];
        } else if (browser.contains("Firefox"))
        {
    
          String subsString = browser.substring(browser.indexOf("Firefox"));
          String info[] = (subsString.split(" ")[0]).split("/");
          browsername = info[0];
          browserversion = info[1];
        } else if (browser.contains("Chrome"))
        {
    
          String subsString = browser.substring(browser.indexOf("Chrome"));
          String info[] = (subsString.split(" ")[0]).split("/");
          browsername = info[0];
          browserversion = info[1];
        } else if (browser.contains("Opera"))
        {
    
          String subsString = browser.substring(browser.indexOf("Opera"));
          String info[] = (subsString.split(" ")[0]).split("/");
          browsername = info[0];
          browserversion = info[1];
        } else if (browser.contains("Safari"))
        {
    
          String subsString = browser.substring(browser.indexOf("Safari"));
          String info[] = (subsString.split(" ")[0]).split("/");
          browsername = info[0];
          browserversion = info[1];
        }
        return browsername + "-" + browserversion;
      }
    
  4. # 5 楼答案

    您必须从请求中读取User-Agent头并做出决定

    在香草servlet应用程序中,一种简单的方法是:

    public void doGet(HttpServletRequest request,
                    HttpServletResponse response) throws ServletException, IOException {
      if(request.getHeader("User-Agent").contains("Mobi")) {
        //you're in mobile land
      } else {
        //nope, this is probably a desktop
      }
    }