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查询天气
publicvoid getByCitys(Stringcityname, JsonCallBackjsonCallBack)
返回字段:(注意:有些字段对应的属性值为空,使用时需判断)
名称 |
|
| 类型 | 说明 |
resultcode |
|
| int | 返回码 |
reason |
|
| string | 返回说明 |
result |
|
| dictionary | 返回结果 |
sk |
|
| dictionary | 当前实况天气 |
| temp |
| int | 当前温度 |
| wind_direction |
| string | 当前风向 |
| wind_strength |
| string | 当前风力 |
| humidity |
| string | 当前湿度 |
| time |
| date | 更新时间 |
today |
|
| dictionary | 今日天气 |
| city |
| string | 城市 |
| date_y |
| string | 日期 |
| week |
| string | 星期 |
| temperature |
| string | 今日温度 |
| weather |
| string | 今日天气 |
| weather_id |
| dictionary | 天气唯一标识 |
|
| fa | Int | 天气标识00:晴 |
|
| fb | int | 天气标识53:霾 如果fa不等于fb,说明是组合天气 |
| wind |
| string | 风向与风力 |
| dressing_index |
| string | 穿衣指数(较冷) |
| dressing_advice |
| string | 穿衣建议 |
| uv_index |
| string | 紫外线强度 |
| comfort_index |
| string | 舒适度指数 |
| wash_index |
| string | |
| travel_index |
| string | 旅游指数 |
| |
| string | |
| |
| string | |
|
|
| array | |
|
|
| int | |
public void getUni(JsonCallBackjsonCallBack)
返回字段:
名称 |
| 类型 | 说明 |
resultcode |
| int | 返回码 |
reason |
| string | 返回说明 |
result |
| array | 返回结果集 |
| wid | string | 天气唯一标示符 |
| weather | string | 天气 |
error_code |
| int | 错误码 |
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)
返回字段:
名称 |
| 类型 | 说明 |
resultcode |
| int | 返回码 |
reason |
| string | 返回说明 |
result |
| array | 返回结果集 |
| | int | |
| | string | |
| | string | 低温 |
| | string | 高温 |
| | string | 开始小时 |
| | string | 结束小时 |
| wid | string | 天气唯一标示符 |
| | string | |
| | string | |
| | string | |
error_code |
| int | 错误码 |
public void getCities(JsonCallBackjsonCallBack)
返回字段:
名称 |
| 类型 | 说明 |
resultcode |
| int | 返回码 |
reason |
| string | 返回说明 |
result |
| dictionary | 返回结果集 |
| | int | |
| province | string | 省份名称 |
| city | string | 城市名称 |
| | string | |
error_code |
| int | 错误码 |
错误码 | 说明 |
203901 | 查询城市不能为空 |
203902 | 查询不到该城市的天气 |
203903 | 查询出错,请重试 |
203904 | 错误的GPS坐标 |
203905 | GPS坐标解析出错,请确认提供的坐标正确(暂支持国内) |
203906 | IP地址错误 |
203907 | 查询不到该IP地址相关的天气信息 |