Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android獲取新浪天氣預報數據實例

Android獲取新浪天氣預報數據實例

編輯:Android開發實例

 新浪天氣預報地址:

http://php.weather.sina.com.cn/xml.php?city=武漢&password=DJOYnieT8234jlsK&day=0

其中,city後的城市可用java.net.URLEncoder.encode(“武漢”,” gb2312”);也可以直接寫”武漢”,但不能用”wuhan”。Password固定

Day為0表示當天天氣,1表示第二天的天氣,2表示第三天的天氣,以此類推,最大為4。

 

工具類:

1、定義成員

  1. /** 新浪天氣網址 */ 
  2. public final String SINA_URL = "http://php.weather.sina.com.cn/xml.php"; 
  3. /** 新浪天氣XML調用密碼 */ 
  4. public final String PASSWORD = "DJOYnieT8234jlsK"; 

  1. /** 城市 */ 
  2.     public String city; 
  3.     /** 白天天氣 */ 
  4.     public String status1; 
  5.     /** 夜晚天氣 */ 
  6.     public String status2; 
  7.     /** 白天天氣 拼音 */ 
  8.     public String figure1; 
  9.     /** 夜晚天氣拼音 */ 
  10.     public String figure2; 
  11.     /** 白天風向 */ 
  12.     public String direction1; 
  13.     /** 夜晚風向 */ 
  14.     public String direction2; 
  15.     /** 白天風級 */ 
  16.     public String power1; 
  17.     /** 夜晚風級 */ 
  18.     public String power2; 
  19.     /** 白天溫度 */ 
  20.     public String temperature1; 
  21.     /** 夜晚溫度 */ 
  22.     public String temperature2; 
  23.     /** 體感溫度 */ 
  24.     public String tgd; 
  25.     /** 紫外線指數 */ 
  26.     public String zwx_l; 
  27.     /** 紫外線說明 */ 
  28.     public String zwx_s; 
  29.     /** 體感度指數 */ 
  30.     public String ssd_l; 
  31.     /** 體感度說明 */ 
  32.     public String ssd_s; 
  33.     /** 空調指數 */ 
  34.     public String ktk_l; 
  35.     /** 空調說明 */ 
  36.     public String ktk_s; 
  37.     /** 洗車指數 */ 
  38.     public String xcz_l; 
  39.     /** 洗車說明 */ 
  40.     public String xcz_s; 
  41.     /** 穿衣指數 */ 
  42.     public String chy_l; 
  43.     /** 穿衣說明 */ 
  44.     public String chy_shuoming; 
  45.     /** 污染物擴散條件 */ 
  46.     public String pollution_l; 
  47.     /** 污染物擴散條件說明 */ 
  48.     public String pollution_s; 
  49.     /** 感冒指數 */ 
  50.     public String gm_l; 
  51.     /** 感冒說明 */ 
  52.     public String gm_s; 
  53.     /** 運動指數 */ 
  54.     public String yd_l; 
  55.     /** 運動說明 */ 
  56.     public String yd_s; 

2、獲取天氣數據

  1. /** 
  2.      * 更新天氣 
  3.      *  
  4.      * @param city 
  5.      *            城市名 
  6.      * @param day 
  7.      *            0表示當天天氣,1表示第二天的天氣,2表示第三天的天氣,以此類推,最大為4 
  8.      */ 
  9.     public void UpdateWeatherInfo(String city, String day) { 
  10.         if (city.equals("")) { 
  11.             isLoaded = false; 
  12.             return; 
  13.         } 
  14.         String html = null; 
  15.         try { 
  16.             html = doGet(SINA_URL + "?city=" 
  17.                     + java.net.URLEncoder.encode(city, "gb2312") + "&password=" 
  18.                     + PASSWORD + "&day=" + day); 
  19.  
  20.             Document doc = Jsoup.parse(html); 
  21.             if (doc.body().getElementsByTag("Profiles").size() == 0) { 
  22.                 isLoaded = false; 
  23.                 return; 
  24.             } 
  25.             if (doc.body().getElementsByTag("Profiles").get(0).getElementsByTag("Weather").size() == 0) { 
  26.                 isLoaded = false; 
  27.                 return; 
  28.             } 
  29.             Element element = doc.body().getElementsByTag("Profiles").get(0) 
  30.                     .getElementsByTag("Weather").get(0); 
  31.  
  32.             this.city = element.getElementsByTag("city").text(); 
  33.             status1 = element.getElementsByTag("status1").text(); 
  34.             status2 = element.getElementsByTag("status2").text(); 
  35.             figure1 = element.getElementsByTag("figure1").text(); 
  36.             figure2 = element.getElementsByTag("figure2").text(); 
  37.             direction1 = element.getElementsByTag("direction1").text(); 
  38.             direction2 = element.getElementsByTag("direction2").text(); 
  39.             power1 = element.getElementsByTag("power1").text(); 
  40.             power2 = element.getElementsByTag("power2").text(); 
  41.             temperature1 = element.getElementsByTag("temperature1").text(); 
  42.             temperature2 = element.getElementsByTag("temperature2").text(); 
  43.  
  44.             tgd = element.getElementsByTag("tgd").text(); 
  45.             zwx_l = element.getElementsByTag("zwx_l").text(); 
  46.             zwx_s = element.getElementsByTag("zwx_s").text(); 
  47.             ssd_l = element.getElementsByTag("ssd_l").text(); 
  48.             ssd_s = element.getElementsByTag("ssd_s").text(); 
  49.             ktk_l = element.getElementsByTag("ktk_l").text(); 
  50.             ktk_s = element.getElementsByTag("ktk_s").text(); 
  51.             xcz_l = element.getElementsByTag("xcz_l").text(); 
  52.             xcz_s = element.getElementsByTag("xcz_s").text(); 
  53.             chy_l = element.getElementsByTag("chy_l").text(); 
  54.             chy_shuoming = element.getElementsByTag("chy_shuoming").text(); 
  55.             pollution_l = element.getElementsByTag("pollution_l").text(); 
  56.             pollution_s = element.getElementsByTag("pollution_s").text(); 
  57.             gm_l = element.getElementsByTag("gm_l").text(); 
  58.             gm_s = element.getElementsByTag("gm_s").text(); 
  59.             yd_l = element.getElementsByTag("yd_l").text(); 
  60.             yd_s = element.getElementsByTag("yd_s").text(); 
  61.  
  62.             isLoaded = true; 
  63.         } catch (UnsupportedEncodingException e) { 
  64.             isLoaded = false; 
  65.         } 
  66.     } 

3、訪問網絡

  1. public static final String ENCODE = "utf-8"; 
  2.  
  3.     public static String doGet(String url) { 
  4.         try { 
  5.             HttpGet httpGet = new HttpGet(url); 
  6.             HttpClient hc = new DefaultHttpClient(); 
  7.             HttpResponse ht = hc.execute(httpGet); 
  8.             if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
  9.                 HttpEntity he = ht.getEntity(); 
  10.                 InputStream is = he.getContent(); 
  11.                 BufferedReader br = new BufferedReader( 
  12.                         new InputStreamReader(is)); 
  13.                 String response = ""; 
  14.                 String readLine = null; 
  15.                 while ((readLine = br.readLine()) != null) { 
  16.                     response = response + readLine; 
  17.                 } 
  18.                 is.close(); 
  19.                 br.close(); 
  20.                 return response; 
  21.             } else { 
  22.                 return "error"; 
  23.             } 
  24.         } catch (Exception e) { 
  25.             return "error"; 
  26.         } 
  27.     } 

4、關於jsoup

http://baike.baidu.com/view/4066913.htm

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved