Есть ли способ получить строку пользовательского агента по умолчанию помимо WebView.getSettings (). GetUserAgentString ()? - PullRequest
22 голосов
/ 05 ноября 2010

Я хочу использовать пользовательский агент по умолчанию для телефона в соединении HttpClient и хотел бы знать, есть ли способ получить пользовательский агент без необходимости иметь WebView для запроса.

Ответы [ 3 ]

46 голосов
/ 20 апреля 2012

Очень поздний ответ, для других, которые могут искать это.

Я искал способ получить строку агента пользователя, используемую 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" );
7 голосов
/ 05 апреля 2017

Начиная с уровня API 17, в WebSettings есть статический метод, который возвращает строку User-Agent по умолчанию, используемую WebView:

WebSettings.getDefaultUserAgent(context)

Поскольку метод статический, вам не нужен экземпляр WebView для его запуска.

0 голосов
/ 05 ноября 2010

Нет, это afaik единственный официальный способ получить строку агента пользователя.

Кстати, возвращаемая строка выглядит примерно так:

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.

...