文档章节

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

王航-聚合数据
 王航-聚合数据
发布于 2014/10/10 09:31
字数 1060
阅读 97
收藏 1

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查询天气

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, 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

错误码

 




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


© 著作权归作者所有

共有 人打赏支持
王航-聚合数据
粉丝 2
博文 12
码字总数 10969
作品 0
苏州
私信 提问
android基础知识02——线程安全1:定义及例子

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
793
0
Android WebDriver 浏览器自动测试工具介绍

Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用。Selenium WebDriver作为Android SDK extra,支持Android 2.3(Gb)及向前版本。 WebDriver是端对端的测试,...

小卒过河
2011/10/27
7.2K
1
Android开发之短信验证码示例

在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图...

流浪冇
2016/09/28
1K
2
使用 Android NDK 重用现有的 C 代码

开始之前 首先,了解 Android 原生开发工具包(NDK)的动机之一是得以利用开源项目,大多数项目都是用 C 语言编写的。完成本教程后,您将了解到如何创建 Java 本地接口(JNI)库,它使用 C ...

IBMdW
2012/01/05
952
0
使用 Android NDK 重用现有的 C 代码

开始之前 首先,了解 Android 本机开发人员工具包(NDK)的动机之一是得以利用开源项目,大多数项目都是用 C 语言编写的。完成本教程后,您将了解到如何创建 Java 本地接口(JNI)库,它使用...

IBMdW
2011/05/12
2.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

《Maven官方文档》-Maven依赖机制简介

《Maven官方文档》-Maven依赖机制简介 原文地址 译者:Tyrian 依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一。单个项目的依赖管理并不难, 但是当你面对包含数百个...

tantexian
18分钟前
1
0
基于 Docker 快速部署多需求 Spark 自动化测试环境

引言 在进行数据分析时,Spark 越来越广泛的被使用。在测试需求越来越多、测试用例数量越来越大的情况下,能够根据需求快速自动化部署 Spark 环境、快速完成所有测试越来越重要。 本文基于 ...

呐呐丶嘿
35分钟前
2
0
支付宝APP支付之查看支付宝商户ID

1、登录支付宝蚂蚁金服开放平台 2、查看账号详情,选择合作伙伴管理,账户管理,查看角色身份,此处的PID就是商户ID 3、点击秘钥管理,可查看绑定的相关应用及其APPID等信息

Code辉
38分钟前
2
0
崛起于Springboot2.X之通讯WebSocket(40)

技术简介:Springboot2.0.3+freemaker+websocket 1、添加pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

木九天
47分钟前
1
0
Java常用四大线程池用法以及ThreadPoolExecutor详解

为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中...

孟飞阳
49分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部