Java 如何检查手机浏览器或PC浏览器是否访问网页?

Java 如何检查手机浏览器或PC浏览器是否访问网页?,java,jakarta-ee,mobile,web,Java,Jakarta Ee,Mobile,Web,如何检查网页是否已由移动浏览器或计算机浏览器打开。我试过这个: name = request.getHeader("User-Agent"); 但它给出了这些类型的结果: 对于Fedora Firefox浏览器:Mozilla/5.0(X11;Linux i686;rv:13.0)Gecko/20100101 Firefox/13.0 对于Android手机浏览器:Mozilla/5.0(Linux;U;Android 2.3.6;en-in;Micromax A50构建/GRK395)Ap

如何检查网页是否已由移动浏览器或计算机浏览器打开。我试过这个:

name = request.getHeader("User-Agent");
但它给出了这些类型的结果:

  • 对于Fedora Firefox浏览器:Mozilla/5.0(X11;Linux i686;rv:13.0)Gecko/20100101 Firefox/13.0
  • 对于Android手机浏览器:Mozilla/5.0(Linux;U;Android 2.3.6;en-in;Micromax A50构建/GRK395)AppleWebKit/533.1(KHTML,类似Gecko)版本/4.0 Mobile Safari/533.1
从以上两个结果中,我无法区分网页是被手机还是电脑访问的。我该怎么做


如果我能用Java实现这一点,那就太好了。

没有任何简单的“mobile=true”标志。你只需要自己检查一下。从中,您可以找到要搜索的值的子集(列表非常旧,所以应该添加新的移动浏览器)。

正如Mikko所写,没有简单的方法来检测移动浏览器

但你可以试试:

类似于前面的回答:
这是我刚刚找到的一个很好的链接:


您还可以查看屏幕的大小(较小的屏幕可能意味着移动设备),可以通过javascript访问该屏幕。

为什么不能。在第二种情况下,您有
Android
,所以尝试搜索所有已知的移动操作系统名称,您将得到您的答案:)@grasPro,如果它是Android,很可能是来自手机。使用阿德尔的建议,获得更多的手机OS@mishadoff你是如何计算概率的?在计算概率时,你对安卓平板电脑的估计是多少?你能像css媒体查询一样检查窗口宽度以获得响应性设计吗?这看起来不错!但确实需要添加新的移动浏览器
var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
       return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() ||      isMobile.Opera() || isMobile.Windows());
    }
};