2011-05-21 45 views
1

我目前正在開發一個帶有WebView組件的Android應用程序,該組件顯示一個專爲手機設計的網站,因此必須將x-wap-profile標頭髮送到站點以調整CSS和圖像大小。Android:如何獲得Android SDK中的UAProf值?

任何人都可以幫我找到UAProf設備設置嗎?

我已經進行了很多搜索,沒有成功。

任何幫助將不勝感激。

在此先感謝。

回答

0

誰能幫我找到的UAProf設備設置?

沒有 「的UAProf設備設置」。

歡迎您使用的loadUrl()在那裏你提供頭自己的一套,包括您所需的標題版本。請注意,這是在API級別8(a.k.a.,Android 2.2) - AFAIK中添加的,之前的Android版本沒有提供自定義標題的選項。

也歡迎您通過WebSettings設置您的用戶代理字符串,如果網站有問題將使用而不是你想要的頭的。

+0

我很感謝你的回答,但那不是我所需要的。但我同意沒有「UAProf設備設置」。 Cheerz – KaHa6uc 2011-05-23 09:54:21

0

UAProf的工作原理如下:當設備向服務器發送HTTP請求時,它會發送一些添加接受標頭。其中一個標頭提供了該設備的UAProf配置文件的鏈接,該設備位於服務器上,通常位於設備製造商處,或可能位於網絡運營商處。 UAProf還可以選擇發送覆蓋作爲接受頭文件的一部分,儘管我從未見過這種情況發生在野外,但無可否認,自從我開始研究UAProf以來,這已經很長時間了。

所以你的情況,你需要做的是要麼發送X-WAP姿態航向指向一個真實的UAProf配置文件,或者如果沒有這樣的配置文件存在,你需要寫一個。我沒有使用過的WebView組件 - 我做的服務器端java - 但它是可能的,如果您使用的是HttpURLConnection類設置X-WAP的輪廓是這樣的:

HttpURLConnection urlconn = (HttpURLConnection) url.openConnection(); 
    urlconn.setRequestProperty("X-Wap-Profile", 
     "http://wap.samsungmobile.com/uaprof/GT-I8190.xml"); 

您可以在Open Mobile Alliance validator site.找到more UAProf profiles

回顧,似乎是沒有辦法從一個Android應用程序中訪問與設備相關的UAProf配置文件Android source code。不過,Android確實有一個單獨的API,android.content,爲應用程序提供有關設備的信息 - here's an example。不幸的是,一旦獲得了屏幕幾何圖形,您需要將其轉換爲配置文件,這需要一些工作。

另一種解決方案是,如果你可以get the device name from Android,那麼你可以交叉引用,即將設備名稱映射到配置文件的配置文件數據庫。我不認爲這樣的數據庫已經存在,但有可能構建一個。一個起點是OMA驗證器站點數據庫上的list of profiles。不幸的是,這已經過時了,因爲我多年來一直沒有在UAProf上工作過,但我用來生成列表的代碼在我編寫的Java UAProf庫DELI中可用。它向谷歌查詢最近的配置文件,但谷歌確實傾向於更新他們的網頁設計,所以它使用的刮板可能會被破壞。

在你這樣做之前,你要檢查網站是否會使用UAProf信息 - 也許你正在編寫網站,在這種情況下它會很好 - 但對於第三方網站,我懷疑很多人不使用UAProf,因爲UAProf配置文件的質量非常不穩定,如果他們使用設備信息,他們可能只是檢測用戶代理字符串,然後在諸如WURFL或類似的付費解決方案的策劃配置集合中查找它。

+1

你好,馬克。我非常清楚UAProf機制的工作原理。我詢問是否有方法詢問該設備的應用程序是否在運行其UAProf URL。 – KaHa6uc 2013-05-14 12:30:43

+0

嗨KaHa6uc,謝謝澄清,我已經更新了我的答案,希望它有用。有一些可能的解決方案..但不幸的是他們已知的是特別容易的。在實踐中,我不認爲UAProf被廣泛使用。舉例來說,據我所知,蘋果公司發佈的唯一UAProf數據就是支持彩信 - 請參閱http://www.apple.com/mms/uaprof.rdf - 而iPhone在沒有它的情況下似乎也能正常工作。 – 2013-05-16 01:38:21