本文实例讲述了Android编程实现获取新浪天气预报数据的方法。分享给大家供大家参考,具体如下:

新浪天气预报地址:

http://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0

其中,city后的城市可用java.net.URLEncoder.encode(“武汉”,” gb2312”);也可以直接写”武汉”,但不能用”wuhan”。Password固定

Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4。

工具类:

1、定义成员

/** 新浪天气网址 */

public final String SINA_URL = "http://php.weather.sina.com.cn/xml.php";

/** 新浪天气XML调用密码 */

public final String PASSWORD = "DJOYnieT8234jlsK";

/** 城市 */

public String city;

/** 白天天气 */

public String status1;

/** 夜晚天气 */

public String status2;

/** 白天天气 拼音 */

public String figure1;

/** 夜晚天气拼音 */

public String figure2;

/** 白天风向 */

public String direction1;

/** 夜晚风向 */

public String direction2;

/** 白天风级 */

public String power1;

/** 夜晚风级 */

public String power2;

/** 白天温度 */

public String temperature1;

/** 夜晚温度 */

public String temperature2;

/** 体感温度 */

public String tgd;

/** 紫外线指数 */

public String zwx_l;

/** 紫外线说明 */

public String zwx_s;

/** 体感度指数 */

public String ssd_l;

/** 体感度说明 */

public String ssd_s;

/** 空调指数 */

public String ktk_l;

/** 空调说明 */

public String ktk_s;

/** 洗车指数 */

public String xcz_l;

/** 洗车说明 */

public String xcz_s;

/** 穿衣指数 */

public String chy_l;

/** 穿衣说明 */

public String chy_shuoming;

/** 污染物扩散条件 */

public String pollution_l;

/** 污染物扩散条件说明 */

public String pollution_s;

/** 感冒指数 */

public String gm_l;

/** 感冒说明 */

public String gm_s;

/** 运动指数 */

public String yd_l;

/** 运动说明 */

public String yd_s;

2、获取天气数据

/**

* 更新天气

*

* @param city

* 城市名

* @param day

* 0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4

*/

public void UpdateWeatherInfo(String city, String day) {

if (city.equals("")) {

isLoaded = false;

return;

}

String html = null;

try {

html = doGet(SINA_URL + "?city="

+ java.net.URLEncoder.encode(city, "gb2312") + "&password="

+ PASSWORD + "&day=" + day);

Document doc = Jsoup.parse(html);

if (doc.body().getElementsByTag("Profiles").size() == 0) {

isLoaded = false;

return;

}

if (doc.body().getElementsByTag("Profiles").get(0).getElementsByTag("Weather").size() == 0) {

isLoaded = false;

return;

}

Element element = doc.body().getElementsByTag("Profiles").get(0)

.getElementsByTag("Weather").get(0);

this.city = element.getElementsByTag("city").text();

status1 = element.getElementsByTag("status1").text();

status2 = element.getElementsByTag("status2").text();

figure1 = element.getElementsByTag("figure1").text();

figure2 = element.getElementsByTag("figure2").text();

direction1 = element.getElementsByTag("direction1").text();

direction2 = element.getElementsByTag("direction2").text();

power1 = element.getElementsByTag("power1").text();

power2 = element.getElementsByTag("power2").text();

temperature1 = element.getElementsByTag("temperature1").text();

temperature2 = element.getElementsByTag("temperature2").text();

tgd = element.getElementsByTag("tgd").text();

zwx_l = element.getElementsByTag("zwx_l").text();

zwx_s = element.getElementsByTag("zwx_s").text();

ssd_l = element.getElementsByTag("ssd_l").text();

ssd_s = element.getElementsByTag("ssd_s").text();

ktk_l = element.getElementsByTag("ktk_l").text();

ktk_s = element.getElementsByTag("ktk_s").text();

xcz_l = element.getElementsByTag("xcz_l").text();

xcz_s = element.getElementsByTag("xcz_s").text();

chy_l = element.getElementsByTag("chy_l").text();

chy_shuoming = element.getElementsByTag("chy_shuoming").text();

pollution_l = element.getElementsByTag("pollution_l").text();

pollution_s = element.getElementsByTag("pollution_s").text();

gm_l = element.getElementsByTag("gm_l").text();

gm_s = element.getElementsByTag("gm_s").text();

yd_l = element.getElementsByTag("yd_l").text();

yd_s = element.getElementsByTag("yd_s").text();

isLoaded = true;

} catch (UnsupportedEncodingException e) {

isLoaded = false;

}

}

3、访问网络

public static final String ENCODE = "utf-8";

public static String doGet(String url) {

try {

HttpGet httpGet = new HttpGet(url);

HttpClient hc = new DefaultHttpClient();

HttpResponse ht = hc.execute(httpGet);

if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

HttpEntity he = ht.getEntity();

InputStream is = he.getContent();

BufferedReader br = new BufferedReader(

new InputStreamReader(is));

String response = "";

String readLine = null;

while ((readLine = br.readLine()) != null) {

response = response + readLine;

}

is.close();

br.close();

return response;

} else {

return "error";

}

} catch (Exception e) {

return "error";

}

}

4、关于jsoup可参考:

http://baike.baidu.com/view/4066913.htm

希望本文所述对大家Android程序设计有所帮助。

调用实现天气预报功能android,Android编程实现获取新浪天气预报数据的方法相关推荐

  1. java获取新浪天气预报代码

    package com.test.commons;/*** java获取新浪天气预报代码*/ import java.io.FileNotFoundException; import java.io. ...

  2. Android——百度APIstore+Json——获取新闻频道+新闻数据

    Android--百度APIstore+Json--获取新闻频道+新闻数据 <span style="font-size:18px;"><strong>pa ...

  3. 如何通过编程方式获取alexa排名的数据

    Alexa 是以发布世界网站排名而引人注目的一个网站.其实,此网站的搜索引擎也很好用,但是"网站排名"却是它吸引眼球的最主要原因.      以网站导航起家的Alexa创建于199 ...

  4. 新浪天气预报代码及城市代码

    名称:新浪天气预报代码 代码 :<IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHE ...

  5. java 输出当前行号_Java编程实现获取当前代码行行号的方法示例

    本文实例讲述了Java编程实现获取当前代码行行号的方法.分享给大家供大家参考,具体如下: 最近的项目中,为了实现自定义的log类,能够输出具体的代码行行号,我通过使用StackTraceElement ...

  6. android 网络编程--URL获取数据/图片

    首先,开始最简单的网络编程实战,URL实现网络连接,不懂的童鞋可以参考JAVA中的URL编程,其原理是一样的,在这里不再多做解释. 直接贴出实现源代码: public class DataActivi ...

  7. android pcm格式转mp3,java – android最快的解码mp3到pcm数据的方法

    在我的应用程序中,我需要将mp3文件解码为pcm缓冲区.这是很多数据,所以当我读取并解码时,我将其下采样到单声道22050Hz. 它的工作速度很慢,30秒用于在运行模式下解码3分钟的歌曲,在调试模式下 ...

  8. android,扫描雷达,新浪威盾 笔记

    这个项目有几个技术点: 1,扫描雷达的动画UI实现 2,opt一次性口令 3,数字时间的动画表现

  9. 说说宾得机身的十大人性化设定和功能[转]_我是亲民_新浪博客

    从专业级的摄影器材技术水平来说,宾得无疑是一个落后的厂家,无论是机身的对焦.测光与白平衡的算法,还是现代变焦镜头镜片组.镜头马达的设计上,距离佳能尼康的专业级器材还有一段距离.当然宾得自身也非常了解自 ...

最新文章

  1. linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问
  2. 笔记-信息化与系统集成技术-区块链的技术架构
  3. android-DNS服务找不到
  4. 九章算法强化班 - 课程大纲
  5. 使用Pycharm的一些错误
  6. Linux下两种TCP网络服务器实现方式:循环服务并发服务
  7. Kava Labs已上线Trust Wallet专用桥接器以提供DeFi产品服务
  8. 西南交通大学计算机学院,西南交通大学2021年招生计划:四川招1830人、重庆招426人...
  9. 豆瓣书籍数据爬取与分析
  10. 一些用xib加载主界面的过程
  11. React 一些相关的技巧
  12. 【数据库系统工程师】数据库系统工程师官方教程第3版和第4版的区别
  13. linux把终端嵌入桌面,在你的Ubuntu Linux桌面上嵌入终端窗口
  14. keepalived配置文件相关简单解释
  15. win10专业版和企业版的区别_Win10专业版和家庭版有什么区别?Win10家庭版和专业版区别对比...
  16. 一起学英语 - 前言
  17. 微信二维码扫一扫打开手机外部浏览器打开指定HTML网页
  18. 访问控制列表之基本ACL、高级ACL 、 高级ACL之ICMP、高级ACL之telnet
  19. Linux ftp服务器虚拟用户的建立
  20. public class A implements B{} --java

热门文章

  1. Android Gradle 笔记
  2. scroll-苹果滑动卡顿
  3. FutureTask demo
  4. python 的文件目录拷贝转移,自动递归目录建立目录
  5. Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...
  6. php设计模式 - 建造者模式
  7. Hadoop学习笔记一
  8. FreeSwitch 的初始化及其模块加载过程
  9. 博威特瞄准数据备份市场
  10. word 语音识别的数据丢失