2010-11-05 19 views
20

Telefon için varsayılan kullanıcı aracısını HttpClient bağlantısında kullanmak istiyorum ve sorgulamak için WebView'a sahip olmadan kullanıcı aracısını edinmenin bir yolu olup olmadığını öğrenmek istiyorum.WebView.getSettings(). GetUserAgentString() ürününün önüne varsayılan kullanıcı aracı dizesi elde etmenin bir yolu var mı?

+0

[Kullanıcı Aracını Geri Al] programında olası bir kopyası (http://stackoverflow.com/questions/3626071/retrieve-user-agent-programatically) – Idolon

+2

21 - 0, belki kabul edilen cevabı tekrar değerlendirmelisiniz? – theblang

+0

@mattblang anahtarlı, – cottonBallPaws

cevap

36

Çok geç cevap, bunun için arayan başkaları için.

HttpUrlConnection tarafından kullanılan kullanıcı aracısı dizesini HttpClient ile kullanmak ve kendi sürüm bilgilerimle değiştirmek için bir yöntem arıyordum. Bu şekilde, Android uygulamam, sunucunun günlük dosyalarından (Android Sürümü, aygıt adı/türü ve uygulamamın sürümü) ayıklayabileceğim bazı yararlı sürüm bilgileri sağlar. Örneğin

, benim telefon için kullanıcı aracısı dizesi HttpUrlConnection kullanarak şöyle görünür:

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

Bu dize şöyle sistem özelliklerinden elde edilebilir:

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

A uyarıları için teşekkürler, ama ayrıca bu sürüm hakkında ne güzel, bu _not_ web tarayıcısı kullanıcı aracısıdır. – lilbyrdie

0

Hayır, bu, kullanıcı aracı dizesini almanın tek resmi yoludur.

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 sunucuları belgelerin tarayıcıya özel versiyonlarını hizmet etmek kullanıcı aracısı dizesi kullanın:

Btw, dönen dize böyle bir şeydir. Bu, yalnızca bir sayfanın mobil sürümünü istiyorsanız ve/veya daha sonra Android'in tarayıcısında görüntülemek istiyorsanız mantıklı olacaktır.

6

API düzeyinde başlayarak 17, WebSettings'da bir WebView tarafından kullanılan varsayılan Kullanıcı Aracısı dizesini döndüren statik bir yöntem vardır:

WebSettings.getDefaultUserAgent(context)

Yöntem statik olduğundan, onu çalıştırmak için WebView örneğine ihtiyacınız yoktur.

İlgili konular