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

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


分享到:
评论

相关推荐

    AdviewSDK_Android-master

    2. **Sample Code**:为了便于理解和使用,SDK可能会提供示例代码,演示如何初始化SDK、请求广告、处理广告展示和点击事件等基本操作。 3. **Documentation**:详细的文档指导,包括API参考、集成指南、故障排查等...

    百度地图点聚合相关代码

    在“BaiduMapsApiASDemo”这个压缩包中,很可能包含了一个Android版的百度地图API示例应用,用于演示点聚合的实现。AS代表Android Studio,这通常意味着代码是用Java或Kotlin编写的。通过这个示例,我们可以了解到...

    安卓Andriod源码——多维报表.zip

    这个名为"安卓Andriod源码——多维报表.zip"的压缩包可能包含了一个完整的示例项目,用于演示如何在Android应用中实现这类功能。下面我们将详细探讨相关的知识点。 1. **多维数据分析**:多维报表通常基于多维数据...

    baidumapdemo.zip

    【标题】"baidumapdemo.zip"是一个包含示例代码的压缩包,主要用于演示如何在Android应用中实现百度地图的多层级、多点聚合功能,以模仿链家找房的应用场景。通过这个示例,开发者可以学习如何将多个地理位置信息点...

    RSS阅读器(Android)

    9. **DemoNews**:这个文件名可能是指一个演示新闻源或者示例数据集,用于展示RSS阅读器如何加载和显示新闻内容。开发者可以使用这类数据测试应用的功能,确保其正确性和稳定性。 在开发Android RSS阅读器的过程中...

    今日头条demo(带数据)

    "今日头条demo(带数据)" 这个标题表明我们正在处理一个关于今日头条的演示项目,其中包含了实际的数据。这通常意味着开发者或学习者可以通过这个demo来了解和学习如何使用今日头条的API、数据接口或者SDK,进行...

    百度ssp 全屏广告源码demo

    【百度ssp全屏广告源码demo】是一款专为百度推广设计的源码示例,它提供了展示全屏广告的功能,并且能一次性展示11个广告代码位,这在广告优化和流量变现方面具有显著的优势。这个demo对于开发者来说,是一个理解和...

    Android 仿百度地图气泡程序源码.rar

    这个“Android 仿百度地图气泡程序源码”是一个示例项目,可以帮助开发者学习如何在Android地图上创建自定义的气泡提示信息。下面我们将详细探讨这个源码中的关键知识点。 1. **地图API集成**: - 使用Google Maps...

    百度地图demo

    【百度地图demo】是开发者用来演示和学习百度地图API功能的应用示例,它涵盖了定位、聚合、热力图以及导航等多个关键功能。这个压缩包包含了多个版本的SDK示例,帮助开发者更好地理解和集成百度地图服务。 1. **...

    SensoroSDKDemo:在Sensoro实习期间的演示

    SensoroSDKDemo是一个基于Java开发的项目,展示了在Sensoro(杭州思沃电子科技有限公司)实习期间使用Sensoro SDK创建的首个演示应用。Sensoro主要专注于物联网(IoT)技术,提供传感器硬件和相应的软件解决方案,使...

    实现友盟第三方登录,分享,推送demo

    在本文中,我们将深入探讨如何实现友盟第三方登录、分享及推送功能,并通过一个名为"TestDemo"的示例项目来展示其实现过程。友盟是中国一家提供移动互联网服务的公司,其产品包括社交分享、消息推送、数据分析等多个...

    OAD-Android-src

    - **测试项目**:TestOAD01是一个示例项目,用于演示如何在实际应用中使用OpenAdAdapter和OADUnityHelper。它可能包含了一些基本的Android UI元素,如按钮、布局和广告展示区域,以及相关的事件监听和回调函数。 -...

    TVPlayerDemo

    TVPlayerDemo是一个集成Vitamio SDK的电视播放应用程序示例。Vitamio是一个功能强大的多媒体框架,专为Android开发者设计,旨在简化在移动设备上处理音频和视频流的过程。这个Demo展示了如何在Android TV或者智能...

    GaodeMapDemo.rar

    在移动应用开发领域,地图服务是不可或缺的一部分,而高德地图作为国内领先的地图服务商,提供了丰富的API和SDK,为开发者提供了强大的地图集成能力。"GaodeMapDemo.rar"这个压缩包文件,正是一个关于高德地图API...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

Global site tag (gtag.js) - Google Analytics