android - mejor - ¿Hay una manera de obtener la cadena de agente de usuario predeterminada además de WebView.getSettings(). GetUserAgentString()?
mejor user agent (3)
Quiero usar el agente de usuario predeterminado para el teléfono en una conexión HttpClient y me gustaría saber si hay una manera de obtener el agente de usuario sin tener que tener un WebView para consultar.
A partir del nivel de API 17, hay un método estático en WebSettings
que devuelve la cadena de User-Agent predeterminada utilizada por un WebView:
WebSettings.getDefaultUserAgent(context)
Como el método es estático, no necesita una instancia de WebView para ejecutarlo.
No, esta es la ú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
Los servidores HTTP utilizan la cadena de agente de usuario para servir versiones de documentos específicas del navegador. 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.
Respuesta muy tardía, para otros que puedan estar buscando esto.
Estaba buscando una manera de obtener la cadena de agente de usuario utilizada por HttpUrlConnection, para usarla con HttpClient y enmendarla con mi propia información de versión. De esta manera, mi aplicación de 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 uso HttpUrlConnection se ve así:
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 como tal:
String userAgent = System.getProperty( "http.agent" );