如何从Android设备获取默认的HTTP USER AGENT?

Noh*_*sib 10 android

如何从Android设备获取默认的HTTP USER AGENT及其默认设置?

谢谢
Nohsib

Pra*_*dar 29

正如Varundroid在他的回答中提到的,

String userAgent = System.getProperty("http.agent"); 
Run Code Online (Sandbox Code Playgroud)

是Android 2.1及更高版本的更好方法.

====================

来自android源代码.

public static String getDefaultUserAgent() {
    StringBuilder result = new StringBuilder(64);
    result.append("Dalvik/");
    result.append(System.getProperty("java.vm.version")); // such as 1.1.0
    result.append(" (Linux; U; Android ");

    String version = Build.VERSION.RELEASE; // "1.0" or "3.4b5"
    result.append(version.length() > 0 ? version : "1.0");

    // add the model for the release build
    if ("REL".equals(Build.VERSION.CODENAME)) {
        String model = Build.MODEL;
        if (model.length() > 0) {
            result.append("; ");
            result.append(model);
        }
    }
    String id = Build.ID; // "MASTER" or "M4-rc20"
    if (id.length() > 0) {
        result.append(" Build/");
        result.append(id);
    }
    result.append(")");
    return result.toString();
}   
Run Code Online (Sandbox Code Playgroud)


Ole*_*ich 7

编辑:请参阅Prakash的答案,这对2.1+更好.

试试http://developer.android.com/reference/android/webkit/WebSettings.html#getUserAgentString

请注意,此用户代理仅适用于Android中默认使用的嵌入式WebKit浏览器.不幸的是,您需要创建一个新的WebView对象来获取用户代理.幸运的是,用户代理不会经常更改,因此您只需要在应用程序生命周期中运行此代码一次(除非不关心性能).做就是了:

String userAgent = new WebView(this).getSettings().getUserAgentString();
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用JavaScript方法navigator.getUserAgent().