如何知道特定Android设备的用户代理字符串?

Bre*_*eak 7 browser android

其任务是获取Web服务器端某些设备的统计信息.为此,我想知道特定Android设备上默认浏览器的用户代理字符串,例如:


  • HTC:
    • HTC Jetstream
    • HTC Flyer
    • HTC Evo View 4G

  • 关系:
    • Nexus 7
    • Nexus 10

  • 三星:
    • Galaxy Tab
    • Galaxy Tab 2
    • Galaxy Note

  • 摩托罗拉:
    • 摩托罗拉Xyboard 8"
    • Droid Xyboard
    • 摩托罗拉Xyboard 10"

有没有简单的方法来了解它?是否有一个众所周知的列表,将设备名称映射到用户代理字符串?另外,如果我采取不同的方法 - 请建议.

Tof*_*mad 5

在我看来,要根据Android设备计算来自各种用户代理的命中,你应该创建一个指向服务器的URL.在应用程序启动时获取用户代理并发送到您的服务器.

我运行此代码以获取用户代理

        WebView mes = new WebView(this);
        String str = mes.getSettings().getUserAgentString();
        Log.i("My User Agent", str);
Run Code Online (Sandbox Code Playgroud)

在三星平板电脑10.1英寸模拟器我有用户代理

Mozilla/5.0 (Linux; U; Android 3.0; en-us; sdk Build/HONEYCOMB) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
Run Code Online (Sandbox Code Playgroud)

我得到了Nexus模拟器

Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; google_sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Run Code Online (Sandbox Code Playgroud)


Ada*_*der 3

我建议您修改现有的解决方案,例如用 perl 编写的Apache Mobile Filter 。它使用51Degrees XML 文件和大约 70k 个用户代理。您只需找到有趣的数据并修改 AMF 脚本,使其能够收集有趣的数据。此外,51Degrees 和 AMF 还可以用于识别用户的设备是否是移动设备、屏幕尺寸等。