有没有办法从WebView.getSettings()。getUserAgentString()之外获得默认的用户代理string?

我想在HttpClient连接中使用手机的默认用户代理,并希望知道是否有办法获取用户代理而不必拥有WebView查询。

Solutions Collecting From Web of "有没有办法从WebView.getSettings()。getUserAgentString()之外获得默认的用户代理string?"

对于可能正在寻找这个的其他人来说,答案很晚。

我正在寻找一种方法来获取HttpUrlConnection使用的用户代理string,与HttpClient一起使用它,并用我自己的版本信息来修改它。 这样,我的Android应用程序提供了一些有用的版本信息,我可以从服务器的日志文件(Android版本,设备名称/types和我的应用程序的版本)中提取。

例如,使用HttpUrlConnection时,手机的用户代理string如下所示:

Dalvik/1.4.0 (Linux; U; Android 2.3.5; HTC Desire HD A9191 Build/GRJ90) 

这个string可以从系统属性中获得,如下所示:

 String userAgent = System.getProperty( "http.agent" ); 

从API级别17开始, WebSettings有一个静态方法,它返回WebView使用的默认User-Agentstring:

WebSettings.getDefaultUserAgent(context)

由于该方法是静态的,所以不需要WebView实例来运行它。

不,这是afaik获取用户代理string的唯一官方方式。

顺便说一句,返回的string是这样的:

 Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 – G1 Phone 

Http服务器使用用户代理string来为浏览器特定的文档版本提供服务。 如果你想要某个页面的移动版本和/或如果你想在Android的浏览器中显示这个,这只会是有意义的。