1.到libs聚合SDK是聚合數據平臺,爲移動開發者提供的免費數據接口.使用前請先到聚合平臺(http://www.juhe.cn/)註冊,申請相關數據.
2.下載聚合數據SDK,將開發包裏的juhe_sdk_v_1_1.jar拷貝到libs根目錄下,將libJuheSDK_v_1_0.so拷貝到libs\armeabi目錄下,如圖:
3.根據接口說明文檔找到以下方法:
/**
* 根據城市名查詢天氣
*
* @param cityname
* 城市名,如:"蘇州"
* @param format
* 未來6天預報(future)兩種返回格式,1或2,默認1
*
* @param jsonCallBack
*
*/
public void getByCitys(String cityname, int format, JsonCallBack jsonCallBack)
/**
* 天氣種類及標識列表
*
* @param jsonCallBack
*
*/
public void getUni(JsonCallBack jsonCallBack)
/**
*
* 根據IP查詢天氣
*
* @param ip
* ip地址,如:58.215.185.154
* @param format
* 未來6天預報(future)兩種返回格式,1或2,默認1
* @param jsonCallBack
*
*/
public void getByIP(String ip, int format, JsonCallBack jsonCallBack)
/**
*
* 根據GPS座標查詢天氣
*
*
* @param lon
* 經度
* @param lat
* 緯度
* @param format
* 未來6天預報(future)兩種返回格式,1或2,默認1
* @param jsonCallBack
*
*/
public void getByGEO(double lat, double lon, int format, JsonCallBack jsonCallBack)
/**
* 城市天氣三小時預報
*
* @param cityname
* @param jsonCallBack
*
*/
public void getForecast3h(String cityname, JsonCallBack jsonCallBack)
/**
* 支持城市列表
*
* @param jsonCallBack
*/
public void getCities(JsonCallBack jsonCallBack)
4.程序中調用方法
首先,在AnroidManifest.xml中添加權限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
在application標籤內部加入你申請的openid
<meta-data
android:name="com.thinkland.juheapi.openid"
android:value="申請的openid" />
在使用前需要調用一次初始化方法
CommonFun.initialize(getApplicationContext());
導入相關包
import com.thinkland.juheapi.common.CommonFun;
import com.thinkland.juheapi.common.JsonCallBack;
import com.thinkland.juheapi.data.weather.WeatherData;
調用方法
//根據城市名/id查詢天氣
WeatherData weatherData = WeatherData.getInstance();
weatherData.getByCitys("蘇州", 1, new JsonCallBack() {
@Override
public void jsonLoaded(JSONObject arg0) {
// TODO Auto-generated method stub
try {
int code = arg0.getInt("resultcode");
if (code == 200) {
JSONObject resultJson = arg0.getJSONObject("result");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
5.返回字段及相關錯誤碼
根據城市名/id查詢天氣
publicvoidgetByCitys(Stringcityname, JsonCallBackjsonCallBack)
返回字段:(注意:有些字段對應的屬性值爲空,使用時需判斷)
publicvoidgetUni(JsonCallBackjsonCallBack)
返回字段:
publicvoid getByIP(Stringip, JsonCallBackjsonCallBack)
返回字段
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)
返回字段:
publicvoidgetCities(JsonCallBackjsonCallBack)
返回字段: