Искам да използвам потребителския агент по подразбиране за телефона във връзка с HttpClient и бих искал да знам дали има начин да получа потребителския агент, без да се налага да имам WebView за запитване.
Има ли начин да получите низа на потребителския агент по подразбиране освен от WebView.getSettings().getUserAgentString()?
Отговори (3)
Много късен отговор за други, които може да търсят това.
Търсих начин да получа низа на потребителския агент, използван от 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" );
Започвайки от API ниво 17, има статичен метод в WebSettings
, който връща низа на User-Agent по подразбиране, използван от WebView:
WebSettings.getDefaultUserAgent(context)
Тъй като методът е статичен, не се нуждаете от екземпляр на WebView, за да го стартирате.
Не, това е единственият официален начин за получаване на низ от потребителски агент.
Btw, върнатият низ е нещо като това:
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.