2010-11-05 18 views
20

Quiero utilizar el agente de usuario predeterminado para el teléfono en una conexión HttpClient y me gustaría saber si hay una forma de obtener el agente de usuario sin tener que tener un WebView para consultar.¿Hay alguna forma de obtener la cadena de agente de usuario predeterminada aparte de WebView.getSettings(). GetUserAgentString()?

+0

posible duplicado de [Recuperar usuario-agente programáticamente] (http://stackoverflow.com/questions/3626071/retrieve-user-agent-programatically) – Idolon

+2

21 a 0, tal vez debería reevaluar la respuesta aceptada? – theblang

+0

@mattblang cambiado, gracias por el aviso – cottonBallPaws

Respuesta

36

Última respuesta tardía, para otros que pueden estar buscando esto.

Estaba buscando una forma de obtener la cadena de agente de usuario utilizada por HttpUrlConnection, para usarla con HttpClient y modificarla con mi propia información de versión. De esta manera, mi aplicación para Android proporciona información útil sobre la versión que puedo extraer de los archivos de registro del servidor (versión de Android, nombre/tipo de dispositivo y la versión de mi aplicación).

Por ejemplo, la cadena de agente de usuario para mi teléfono cuando se utiliza HttpURLConnection se parece a esto:

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

Esta cadena se puede obtener de las propiedades del sistema, así:

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

Una advertencia, pero también lo bueno de esta versión, es que no es el agente de usuario del navegador web. – lilbyrdie

0

No, esta es una única forma oficial de obtener la cadena de agente de usuario.

Por cierto, la cadena devuelta es algo como esto:

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 

servidores HTTP utilizan cadena de agente de usuario para servir a las versiones específicas del navegador de documentos. Esto solo tendría sentido si desea una versión móvil de alguna página y/o si desea mostrarla más adelante en el navegador de Android.

6

A partir de nivel de la API 17 hay un método estático en WebSettings que devuelve la cadena de usuario-agente predeterminada utilizada por un WebView:

WebSettings.getDefaultUserAgent(context)

Como el método es estático, no necesita una instancia de WebView para ejecutarlo.

Cuestiones relacionadas