我可以問WebView.getWebSettings().getUserAgentString()
來獲得用戶 代理,但這並不爲我的應用程序工作那麼好,因爲我需要 實例化一個WebView
第一,即使我不需要。獲取用戶代理不包含網頁視圖
是否有另一種方式不使用WebView.getSetting,
而到達用戶代理?因爲在我的應用程序中,我不需要webView
?
幫助我,請
我可以問WebView.getWebSettings().getUserAgentString()
來獲得用戶 代理,但這並不爲我的應用程序工作那麼好,因爲我需要 實例化一個WebView
第一,即使我不需要。獲取用戶代理不包含網頁視圖
是否有另一種方式不使用WebView.getSetting,
而到達用戶代理?因爲在我的應用程序中,我不需要webView
?
幫助我,請
你可以看到它是如何通過查看源
根據該文件,你不能讓一個WebSettings對象沒有一個確定的WebView。
您是否需要它與手機發送的完全一樣?如果沒有,只需選擇一個標準的Android用戶代理(不是版本/版本特定的)
有什麼辦法找到「web_user_agent」資源字符串從Android的用於格式化輸出?我已經搜索並找不到它。 – 2011-06-24 18:18:09
找到它:
不幸的是,該字符串有許多Android/WebKit版本的細節,使我們很難在我們的應用程序中構建一個等同於WebView的UserAgent,跨越多個Android版本。 – 2011-06-24 18:23:18
用戶代理的信息是從HTTP頭獲得的,這取決於用什麼瀏覽器來啓動WebView對象。因此,如果您只想在不創建WebView的情況下獲取用戶代理字符串,那就沒有任何意義。
更好的方法可能是創建一個WebView並將其可見性設置爲GONE。獲取用戶代理字符串後,將其銷燬。
源自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();
}
這是webView.getSettings(),其中Webview是一個實例的WebView不是類 – Bostone 2012-11-19 16:39:18