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/编辑后,点击确定,即可设置。
干杯!