Java 使用UADetector从用户代理获取Android设备名称

Java 使用UADetector从用户代理获取Android设备名称,java,android,google-app-engine,user-agent,Java,Android,Google App Engine,User Agent,我正在使用Google App Engine解析此用户代理,如下所示: Mozilla/5.0 (Linux; U; Android 2.2; en-ca; GT-P1000M Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 UserAgentStringParser parser = UADetectorServiceFactory.getResourceModulePars

我正在使用Google App Engine解析此用户代理,如下所示:

Mozilla/5.0 (Linux; U; Android 2.2; en-ca; GT-P1000M Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
UserAgent ua = parser.parse(anyUserAgentString);
if (ua.getKnownFragments().contains(KnownFragments.GT_P1000M)) {
    System.out.println("Seems to be a Galaxy Tab GT-P1000.");
} else if (ua.getKnownFragments().contains(KnownFragments.IPAD)) {
    System.out.println("Seems to be an iPad.");
} else if (ua.getKnownFragments().contains(KnownFragments.IPHONE)) {
    System.out.println("Seems to be an iPhone.");
}
我可以
getOperatingSystem()
,但是我不能像
GT-P1000M那样获得Android设备名

我该怎么做


谢谢

此功能经常被请求,但目前尚未实施。为了能够实现这一点,我们需要一个包含相应设备信息的大量用户代理字符串列表。我认为我们没有得到这份清单,但我们应该能够部分实施(按需)

在过去的几天里,我考虑实现一组已知片段,以便您可以编写如下内容:

Mozilla/5.0 (Linux; U; Android 2.2; en-ca; GT-P1000M Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
UserAgent ua = parser.parse(anyUserAgentString);
if (ua.getKnownFragments().contains(KnownFragments.GT_P1000M)) {
    System.out.println("Seems to be a Galaxy Tab GT-P1000.");
} else if (ua.getKnownFragments().contains(KnownFragments.IPAD)) {
    System.out.println("Seems to be an iPad.");
} else if (ua.getKnownFragments().contains(KnownFragments.IPHONE)) {
    System.out.println("Seems to be an iPhone.");
}
如果此功能可以帮助您,请参与。此功能将在上讨论。非常感谢您的任何反馈或帮助


(我是UADetector的作者。)

谢谢你的评论。为什么不从用户代理字符串中获取它?因为它取决于设备和/或软件生产商。HTTP头中的用户代理标准化程度很低,每个生产者实现它的方式都略有不同。这就是为什么存在这样一个工具的原因之一。有关用户代理字符串格式的更多信息,请访问。