我正在Android中编写一个使用WebView显示HTML内容的应用程序。有人告诉我为我的应用程序获取Android用户代理 - 我该怎么做?我从我的应用程序和Android浏览器中打开了http://whatsmyuseragent.com - 两个用户代理都是相同的。
请帮忙!
答案 0 :(得分:123)
经过大量研究,我发现了它。有一种方法可以为Android WebView设置用户代理。
webview.getSettings().setUserAgentString("user-agent-string");
http://developer.android.com/reference/android/webkit/WebSettings.html
答案 1 :(得分:11)
您目前无法为WebView
设置用户代理。
更新 - 我的立场得到了纠正!
在WebSettings
中,有一种名为setUserAgentString的方法:
webView.getSettings().setUserAgentString("my-user-agent");
答案 2 :(得分:11)
将它放在java类的onCreate方法中,用于显示WebView的活动:
WebView myWebView = (WebView)findViewById(R.id.webview);
//get the UA of the current running device:
String userAgent = view.getSettings().getUserAgentString() ;
//set the UA of the webview to this value:
myWebView.getSettings().setUserAgentString(userAgent);
不要使用System.getProperty(“http.agent”) - 这将返回'Dalvik'用户代理(Dalvik是各个Android应用运行的虚拟机)
答案 3 :(得分:5)
您可以使用System.getProperty("http.agent")
获取默认设备UA。 webView.getSettings().getUserAgentString();
将为您提供WebView
的UA。请注意,我们可以通过编程方式设置UA。所以它可能不是所有情况下的默认设备UA。
System.getProperty("http.agent")
是获取UA的更好方法,可以在WebView
的实例可用之前检索。
答案 4 :(得分:0)
如果您想在独立浏览器应用程序(不是应用程序内的嵌入式WebView)中尝试使用自定义User-Agent,则可以通过在浏览器的URL字段中键入“about:useragent”来操作User-Agent值(不带引号“”),然后加载页面。
您将看到一个带有单选按钮的对话框,可以模拟Iphone,桌面,Lismore,Nexus One,Galaxy S甚至自定义用户代理编辑框。
根据您的需要选择/编辑后,点按确定即可设置。
干杯!