除了WebView.getSettings()之外,有没有办法获取默认的用户代理字符串.getUserAgentString()?

时间:2010-11-05 06:29:57

标签: android httpclient user-agent

我想在HttpClient连接中使用手机的默认用户代理,并想知道是否有办法获取用户代理而无需使用WebView进行查询。

3 个答案:

答案 0 :(得分:45)

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

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

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

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

此字符串可以从系统属性中获取,如下所示:

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

答案 1 :(得分:7)

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

WebSettings.getDefaultUserAgent(context)

由于该方法是静态的,因此您无需运行WebView实例。

答案 2 :(得分:0)

不,这是获取用户代理字符串的唯一官方方式。

顺便说一下,返回的字符串是这样的:

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服务器使用用户代理字符串来提供特定于浏览器的文档版本。只有当您想要某个页面的移动版本和/或稍后想要在Android浏览器中显示时,这才有意义。