安卓天氣預報app的一些坑(1)

之前之所以涉足到安卓平臺開發,主要是因爲當時寫完了第一篇小論文,剛好有閒時間,正好又對安卓app比較感興趣,於是就開始學習安卓平臺開發。
    我配置的環境是win7 32位,eclipse,adt。當時我是跟着郭霖大神寫的《第一行代碼》這本書一路學下來的。當時有一個項目是實現地圖的app,通過調用google地圖的api接口來實現一個地圖的app。可惜,google在國內不能用。嗯,於是開始想着用其他地圖api接口。在網上搜索了下,主要有高德,百度這幾種。看了這幾種的api文檔,發現還是百度的做的比較好。好吧,主要是因爲我覺得百度的api接口比較方便。於是就調用了百度地圖的api接口。一路做下來,覺得都還順利,但是有幾個坑要注意。首先要注意使用“utf-8”進行編碼,否則可能會讀取不到。第二,httpclient和httpconnection等這幾種網絡連接方式。我是首先使用的是httpclient,發現莫名其妙有的時候會讀取不到信息。後來在網上查詢過,發現httpclient已經過時,經常會出問題。於是,切換httpconnection,發現基本沒問題。

  實現了百度地圖的app後,開始着手實現天氣預報的app。首先遇到一個大坑,在《第一行代碼》這本書中,郭神使用的是中國天氣網的數據。不過現在好像已經不能順利獲取了,於是尋找其他的天氣網站的數據。發現了百度車聯網好像可以,不過發現數據較少,而且詭異的是發現APIKEY始終不能獲取,存儲技術失敗是什麼鬼?嗯,後來只做了個小Demo,還參考了別人一些代碼。最後發現和風天氣比較好,於是註冊了和風天氣的開發者。使用和風天氣的API發現超級Crazy的JSON數據,讓人抓狂,解析了一下午,不想用高級工具,只用JSONOBJECT來解析,發現困難重重,因爲和風Weather的JSON數據裏包含有空格和小數點,無法進行解析。找了半天解決方案,有人說把它看做字符串就好了,的確也是,json數據說白了也還是string類型。最終把和風Weather給去掉,進行了一層一層的解析,終於完成。
    不過又有問題,一開始我使用的是Httpclient,這個比較熟悉,看着簡單,一直用的都是這個。然後Bug出現了。在Android4.4以後的系統上發現有的可以有的不行。恩,一開始不想管了,後來發現進行5.0真機調試,正是Httpclient發生問題。上網一查大吃一驚,Android5.0以後的基本只支持HttpUrlCOnnection,好吧,重新搞這個。遇到一個問題,總是出現Unknown city,大概是輸入的城市名不太對,想到需要用UTF-8來進行編碼,最終解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章