how to get the default HTTP USER AGENT from the android device?

前端 未结 4 1564
梦如初夏
梦如初夏 2020-12-09 19:58

How to get the default HTTP USER AGENT and its default settings from the android device?

thanks
Nohsib

相关标签:
4条回答
  • 2020-12-09 20:25

    An alternative

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
        String userAgent = WebSettings.getDefaultUserAgent(context);
    }
    
    0 讨论(0)
  • 2020-12-09 20:28

    as Varundroid mentioned in his answer,

    String userAgent = System.getProperty("http.agent"); 
    

    is better way to do it for Android 2.1 and above.

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

    From android source code.

    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();
    }   
    
    0 讨论(0)
  • 2020-12-09 20:29

    When you use web view to access the user-agent, make sure you run the

    new WebView(this).getSettings().getUserAgentString();

    on the UI thread.

    If you want access the user agent on background thread. use

    System.getProperty("http.agent")

    To check whether a user-agent is valid or not use this https://deviceatlas.com/device-data/user-agent-tester

    0 讨论(0)
  • 2020-12-09 20:41

    Edit: See Prakash's answer, which is better for 2.1+.

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

    Note that this User Agent will only apply for the embedded WebKit browser that's used by default in Android. Unfortunately, you'll need to create a new WebView object to get the user agent. Fortunately, the user agent doesn't change often, so you should only need to run this code once in your application lifetime (unless don't care about performance). Just do:

    String userAgent = new WebView(this).getSettings().getUserAgentString();
    

    Alternatively, you can use the JavaScript method navigator.getUserAgent().

    0 讨论(0)
提交回复
热议问题