无法在Web服务器中检测到Android

Jaa*_*akL 14 browser android

通过服务器检测Android的明显方法是从User-Agent HTTP标头中搜索"Android"字符串.但是 - 我曾经抱怨这在某些设备上不起作用(例如在我的HTC Evo中),它们没有被检测为Android.whatsmyuseragent.com为我的HTC Evo 3D网页浏览器提供:Mozilla/5.0(X11; Linux x86_64)AppleWebKit/534.24(KHTML,如Gecko)Chrome/11.0.696.34 Safari/534.24.没有Android字符串或版本.它可能是设备上的一个安全软件,它改变它,或HTC特定的问题,不确定它.

显然,同一台设备上的Android Chrome还有另一个,更好的UA:Mozilla/5.0(Linux; Android 4.0.3; HTC EVO 3D X515m Build/IML74K)AppleWebKit/535.19(KHTML,像Gecko)Chrome/18.0.1025.166 Mobile Safari/535.19,但我不能只希望例如二维码阅读器应用程序打开Chrome而不是内置的Android浏览器,它具有无效的UA.

是否有一个很好的技巧(javascript调用?)可以跨设备和浏览器可靠地检测Android?

编辑:看起来与Galaxy S III相同的问题,相同的用户代理字符串:Android手机浏览器检测

Jaa*_*akL 8

看起来我在Android网络浏览器设置中选择了"显示桌面版".关闭后,用户代理就在Android内部.这似乎是ICS的一个特点,HTC不应该受到指责:google为错误的用户代理我看到它发生在许多不同的手机上.