android用户代理

我正在编写一个Android应用程序,使用WebView来显示HTML内容。 我被告知为我的应用程序获得一个Android用户代理 – 我该怎么做? 我从我的应用程序以及Android浏览器打开了http://whatsmyuseragent.com – 两个用户代理都是一样的。

请帮忙!

经过大量的研究,我find了答案。 有一种方法可以为Android WebView设置用户代理。

webview.getSettings().setUserAgentString("user-agent-string"); 

http://developer.android.com/reference/android/webkit/WebSettings.html

您目前无法为WebView设置用户代理。

更新 – 我站好了!

WebSettings有一个名为setUserAgentString的方法:

 webView.getSettings().setUserAgentString("my-user-agent"); 

您可以使用System.getProperty("http.agent")来获取默认设备UA。 和webView.getSettings().getUserAgentString(); 会给你WebView的UA。 请注意,我们可以以编程方式设置UA。 所以在所有情况下它可能不是默认的设备UA。

System.getProperty("http.agent")是获取UA的更好方法,可以在WebView的实例可用之前进行检索。

把它放在显示WebView的活动的java类的onCreate方法中:

 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应用程序运行的VM)

如果您想在独立浏览器应用程序(而不是应用程序内部的embedded式WebView)中使用自定义User-Agent,则可以在浏览器的URL字段中键入“about:useragent”来操作User-Agent的值引号“”),然后加载页面。

您将看到一个带有单选button的对话框来模拟Iphone,桌面,Lismore,Nexus One,Galaxy S甚至自定义用户代理编辑框。

根据需要select/编辑后,点击确定,即可设置。

干杯!