聚合數據Android SDK 天氣查詢演示示例

1.libs聚合SDK是聚合數據平臺,爲移動開發者提供的免費數據接口.使用前請先到聚合平臺(http://www.juhe.cn/)註冊,申請相關數據.

2.下載聚合數據SDK,將開發包裏的juhe_sdk_v_1_1.jar拷貝到libs根目錄下,將libJuheSDK_v_1_0.so拷貝到libs\armeabi目錄下,如圖:


3.根據接口說明文檔找到以下方法:


Java代碼  收藏代碼

  1. /** 

  2.      * 根據城市名查詢天氣 

  3.      *  

  4.      * @param cityname 

  5.      *            城市名,如:"蘇州" 

  6.      * @param format 

  7.      *            未來6天預報(future)兩種返回格式,1或2,默認1 

  8.      * 

  9.      * @param jsonCallBack 

  10.      *  

  11.      */  

  12.     public void getByCitys(String cityname, int format, JsonCallBack jsonCallBack)   

  13.   

  14. /** 

  15.      * 天氣種類及標識列表 

  16.      *  

  17.      * @param jsonCallBack 

  18.      *  

  19.      */  

  20.     public void getUni(JsonCallBack jsonCallBack)   

  21.   

  22. /** 

  23.      *  

  24.      * 根據IP查詢天氣 

  25.      *  

  26.      * @param ip 

  27.      *            ip地址,如:58.215.185.154 

  28.      * @param format 

  29.      *            未來6天預報(future)兩種返回格式,1或2,默認1 

  30.      * @param jsonCallBack 

  31.      *  

  32.      */  

  33.     public void getByIP(String ip, int format, JsonCallBack jsonCallBack)  

  34.   

  35. /** 

  36.      *  

  37.      * 根據GPS座標查詢天氣 

  38.      *  

  39.      *  

  40.      * @param lon 

  41.      *            經度 

  42.      * @param lat 

  43.      *            緯度 

  44.      * @param format 

  45.      *            未來6天預報(future)兩種返回格式,1或2,默認1 

  46.      * @param jsonCallBack 

  47.      *  

  48.      */  

  49.     public void getByGEO(double lat, double lon, int format, JsonCallBack jsonCallBack)   

  50.   

  51. /** 

  52.      * 城市天氣三小時預報 

  53.      *  

  54.      * @param cityname 

  55.      * @param jsonCallBack 

  56.      *  

  57.      */  

  58.     public void getForecast3h(String cityname, JsonCallBack jsonCallBack)   

  59.   

  60. /** 

  61.      * 支持城市列表 

  62.      *  

  63.      * @param jsonCallBack 

  64.      */  

  65.     public void getCities(JsonCallBack jsonCallBack)   




4.程序中調用方法


首先,在AnroidManifest.xml中添加權限


Html代碼  收藏代碼

  1. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

  2. <uses-permission android:name="android.permission.INTERNET" />  

  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  

  4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  

  5. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  

  6. <uses-permission android:name="android.permission.READ_CONTACTS" />  


在application標籤內部加入你申請的openid


Html代碼  收藏代碼

  1. <meta-data  

  2.         android:name="com.thinkland.juheapi.openid"  

  3.         android:value="申請的openid" />  


在使用前需要調用一次初始化方法


Java代碼  收藏代碼

  1. CommonFun.initialize(getApplicationContext());  



導入相關包


Java代碼  收藏代碼

  1. import com.thinkland.juheapi.common.CommonFun;  

  2. import com.thinkland.juheapi.common.JsonCallBack;  

  3. import com.thinkland.juheapi.data.weather.WeatherData;  






調用方法


Java代碼  收藏代碼

  1. //根據城市名/id查詢天氣  

  2.         WeatherData weatherData = WeatherData.getInstance();  

  3.         weatherData.getByCitys("蘇州"1new JsonCallBack() {  

  4.   

  5.             @Override  

  6.             public void jsonLoaded(JSONObject arg0) {  

  7.                 // TODO Auto-generated method stub  

  8.                 try {  

  9.                     int code = arg0.getInt("resultcode");  

  10.                     if (code == 200) {  

  11.                         JSONObject resultJson = arg0.getJSONObject("result");  

  12.                     }  

  13.                 } catch (JSONException e) {  

  14.                     // TODO Auto-generated catch block  

  15.                     e.printStackTrace();  

  16.                 }  

  17.             }  

  18.         });  





5.返回字段及相關錯誤碼


根據城市名/id查詢天氣

publicvoidgetByCitys(Stringcityname, JsonCallBackjsonCallBack)

返回字段:(注意:有些字段對應的屬性值爲空,使用時需判斷)

wKiom1Q4wWnCB8TeAAMZpwv2k_Y007.jpg

wKioL1Q4waCArMHbAAECOJUrYGA729.jpg

publicvoidgetUni(JsonCallBackjsonCallBack)


返回字段:

wKiom1Q4wWmQrH-nAADCAlQBkks966.jpg

publicvoid getByIP(Stringip, JsonCallBackjsonCallBack)

返回字段

wKioL1Q4wuWRh3-CAAC9mZO2wyc818.jpg


publicvoid getByIP(Stringip, JsonCallBackjsonCallBack)

返回字段同juhe.apis.weather.index(根據城市名/id查詢天氣)。



public void getByGEO(doublelat,doublelon,JsonCallBack jsonCallBack)


返回字段同juhe.apis.weather.index(根據城市名/id查詢天氣)。



public voidgetForecast3h(String cityname, JsonCallBackjsonCallBack)


返回字段:

wKiom1Q4wt3CcBHLAAG0huYxE08672.jpg

publicvoidgetCities(JsonCallBackjsonCallBack)

返回字段:

wKioL1Q4wz3yg4HOAAESaCK7SPo935.jpg

wKiom1Q4wwaDFcCqAAEqe8yDtjc691.jpg


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