Получить User Agent в моем приложении, которое не содержит веб-просмотра - PullRequest
1 голос
/ 12 апреля 2011

Я могу попросить WebView.getWebSettings().getUserAgentString(), чтобы получить пользователя агент, но это не очень хорошо работает для моего приложения, так как мне нужно сначала создать экземпляр WebView, хотя мне и не нужно.

Есть ли другой способ попасть в User Agent без использования WebView.getSetting,, потому что в моем приложении мне не нужен webView?

Помогите мне, пожалуйста

Ответы [ 4 ]

2 голосов
/ 12 апреля 2011

Вы либо инициализируете Webview, а затем уничтожаете его, либо просто жестко кодируете пользовательский агент в виде строки (и заменяете на языке времени выполнения и т. Д.).

1 голос
/ 29 января 2013

Из 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();
}   
1 голос
/ 12 апреля 2011

Информация о пользовательском агенте получается из заголовков HTTP, которые зависят от того, какой браузер используется для запуска объекта WebView.Следовательно, не имеет смысла, если вы хотите получить только строку пользовательского агента без создания WebView.

Лучшим способом может быть создание WebView и установка его видимости GONE.Получив строку агента пользователя, уничтожьте ее.

1 голос
/ 12 апреля 2011

Вы можете увидеть, как это определяется, посмотрев на источник

http://www.google.com/codesearch/p?hl=en#uX1GffpyOZk/core/java/android/webkit/WebSettings.java&q=getCurrentUserAgent&sa=N&cd=1&ct=rc&l=370

Согласно документации, вы не можете получить объект WebSettings без WebView.

Вам нужен именно тот, который отправит телефон? Если нет, просто возьмите стандартный пользовательский агент Android (не зависит от сборки / версии)

...