加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

聚合数据Android SDK 天气查询演示示例

发布时间:2020-12-14 05:21:32 所属栏目:百科 来源:网络整理
导读:1. 到 libs聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据. 2.下载聚合数据SDK,将开发包里的 juhe_sdk_v_1_1.jar 拷贝到 libs 根目录下,将 libJuheSDK_v_1_0.so 拷贝到 libsarmeabi

1.libs聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据.

2.下载聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libsarmeabi目录下,如图:


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,JsonCallBack jsonCallBack)

/**
	 * 
	 * 根据GPS坐标查询天气
	 * 
	 * 
	 * @param lon
	 *            经度
	 * @param lat
	 *            纬度
	 * @param format
	 *            未来6天预报(future)两种返回格式,1或2,默认1
	 * @param jsonCallBack
	 * 
	 */
	public void getByGEO(double lat,double lon,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

旅游指数

?

exercise_index

?

string

晨练指数

?

drying_index

?

string

干燥指数
future

?

?

array

未来几天天气(内部字典参数均能在today中找到)
error_code

?

?

int

错误码

?



public?void?getUni(JsonCallBackjsonCallBack)

返回字段:

名称

?

类型

说明

resultcode

?

int

返回码

reason

?

string

返回说明

result

?

array

返回结果集

?

wid

string

天气唯一标示符

?

weather

string

天气

error_code

?

int

错误码

?

publicvoid getByIP(Stringip,62)">jsonCallBack)

返回字段同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

错误码

?




public?void?getCities(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地址相关的天气信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读