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

时间:2013-03-05 02:46:51

标签: java android google-app-engine user-agent

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

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

我可以getOperatingSystem(),但我无法获得像GT-P1000M

这样的Android设备名称

我该怎么做?

由于

1 个答案:

答案 0 :(得分:3)

此功能经常被请求,但目前尚未实施。为了能够实现这一点,我们需要一个包含有关相应设备信息的大量User-Agent字符串。我不认为我们得到这个列表,但我们应该能够部分地(按需)实现它。

在最后几天,我已经考虑过实现一组已知的片段,这样你就可以这样写:

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.");
}

如果此功能可以帮助您,请参加。此功能将在https://github.com/before/uadetector/issues/20上讨论。任何反馈或帮助都非常感谢。

(我是 UADetector 的作者。)