`
SorosW
  • 浏览: 9595 次
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

聚合数据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.根据接口说明文档找到以下方法:

/**
	 * 根据城市名查询天气
	 * 
	 * @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)

返回字段:(注意:有些字段对应的属性值为空,使用时需判断)

名称

类型

说明

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

错误码



publicvoidgetUni(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

返回结果集

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地址相关的天气信息


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics