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代码
- /**
- * 根据城市名查询天气
- *
- * @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中添加权限
Html代码
- <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
Html代码
- <meta-data
- android:name="com.thinkland.juheapi.openid"
- android:value="申请的openid" />
在使用前需要调用一次初始化方法
Java代码
- CommonFun.initialize(getApplicationContext());
导入相关包
Java代码
- import com.thinkland.juheapi.common.CommonFun;
- import com.thinkland.juheapi.common.JsonCallBack;
- import com.thinkland.juheapi.data.weather.WeatherData;
调用方法
Java代码
- //根据城市名/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)
返回字段:
时间: 2024-08-18 15:49:01