我想在HttpClient连接中使用手机的默认用户代理,并想知道是否有办法获取用户代理而无需使用WebView进行查询。
答案 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浏览器中显示时,这才有意义。