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)
首先,在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查询天气
返回字段:(注意:有些字段对应的属性值为空,使用时需判断)
名称 |
|
|
类型 |
说明 |
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 |
旅游指数 |
||
exercise_index |
string |
晨练指数 |
||
drying_index |
string |
干燥指数 |
||
future |
array |
未来几天天气(内部字典参数均能在today中找到) |
||
error_code |
int |
错误码 |
返回字段:
名称 |
|
类型 |
说明 |
resultcode |
int |
返回码 |
|
reason |
string |
返回说明 |
|
result |
array |
返回结果集 |
|
wid |
string |
天气唯一标示符 |
|
weather |
string |
天气 |
|
error_code |
int |
错误码 |
返回字段同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 |
返回结果集 |
|
weatherid |
int |
天气标识ID |
|
weather |
string |
天气 |
|
temp1 |
string |
低温 |
|
temp2 |
string |
高温 |
|
sh |
string |
开始小时 |
|
eh |
string |
结束小时 |
|
wid |
string |
天气唯一标示符 |
|
date |
string |
日期 |
|
sfdate |
string |
完整开始时间 |
|
efdate |
string |
完整结束时间 |
|
error_code |
int |
错误码 |
publicvoidgetCities(JsonCallBackjsonCallBack)
返回字段:
名称 |
|
类型 |
说明 |
resultcode |
int |
返回码 |
|
reason |
string |
返回说明 |
|
result |
dictionary |
返回结果集 |
|
id |
int |
城市ID |
|
province |
string |
省份名称 |
|
city |
string |
城市名称 |
|
district |
string |
城市/区名称 |
|
error_code |
int |
错误码 |
错误码 |
说明 |
203901 |
查询城市不能为空 |
203902 |
查询不到该城市的天气 |
203903 |
查询出错,请重试 |
203904 |
错误的GPS坐标 |
203905 |
GPS坐标解析出错,请确认提供的坐标正确(暂支持国内) |
203906 |
IP地址错误 |
203907 |
查询不到该IP地址相关的天气信息 |