调用实现天气预报功能android,Android编程实现获取新浪天气预报数据的方法
本文实例讲述了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编程实现获取新浪天气预报数据的方法相关推荐
- java获取新浪天气预报代码
package com.test.commons;/*** java获取新浪天气预报代码*/ import java.io.FileNotFoundException; import java.io. ...
- Android——百度APIstore+Json——获取新闻频道+新闻数据
Android--百度APIstore+Json--获取新闻频道+新闻数据 <span style="font-size:18px;"><strong>pa ...
- 如何通过编程方式获取alexa排名的数据
Alexa 是以发布世界网站排名而引人注目的一个网站.其实,此网站的搜索引擎也很好用,但是"网站排名"却是它吸引眼球的最主要原因. 以网站导航起家的Alexa创建于199 ...
- 新浪天气预报代码及城市代码
名称:新浪天气预报代码 代码 :<IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHE ...
- java 输出当前行号_Java编程实现获取当前代码行行号的方法示例
本文实例讲述了Java编程实现获取当前代码行行号的方法.分享给大家供大家参考,具体如下: 最近的项目中,为了实现自定义的log类,能够输出具体的代码行行号,我通过使用StackTraceElement ...
- android 网络编程--URL获取数据/图片
首先,开始最简单的网络编程实战,URL实现网络连接,不懂的童鞋可以参考JAVA中的URL编程,其原理是一样的,在这里不再多做解释. 直接贴出实现源代码: public class DataActivi ...
- android pcm格式转mp3,java – android最快的解码mp3到pcm数据的方法
在我的应用程序中,我需要将mp3文件解码为pcm缓冲区.这是很多数据,所以当我读取并解码时,我将其下采样到单声道22050Hz. 它的工作速度很慢,30秒用于在运行模式下解码3分钟的歌曲,在调试模式下 ...
- android,扫描雷达,新浪威盾 笔记
这个项目有几个技术点: 1,扫描雷达的动画UI实现 2,opt一次性口令 3,数字时间的动画表现
- 说说宾得机身的十大人性化设定和功能[转]_我是亲民_新浪博客
从专业级的摄影器材技术水平来说,宾得无疑是一个落后的厂家,无论是机身的对焦.测光与白平衡的算法,还是现代变焦镜头镜片组.镜头马达的设计上,距离佳能尼康的专业级器材还有一段距离.当然宾得自身也非常了解自 ...
最新文章
- linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问
- 笔记-信息化与系统集成技术-区块链的技术架构
- android-DNS服务找不到
- 九章算法强化班 - 课程大纲
- 使用Pycharm的一些错误
- Linux下两种TCP网络服务器实现方式:循环服务并发服务
- Kava Labs已上线Trust Wallet专用桥接器以提供DeFi产品服务
- 西南交通大学计算机学院,西南交通大学2021年招生计划:四川招1830人、重庆招426人...
- 豆瓣书籍数据爬取与分析
- 一些用xib加载主界面的过程
- React 一些相关的技巧
- 【数据库系统工程师】数据库系统工程师官方教程第3版和第4版的区别
- linux把终端嵌入桌面,在你的Ubuntu Linux桌面上嵌入终端窗口
- keepalived配置文件相关简单解释
- win10专业版和企业版的区别_Win10专业版和家庭版有什么区别?Win10家庭版和专业版区别对比...
- 一起学英语 - 前言
- 微信二维码扫一扫打开手机外部浏览器打开指定HTML网页
- 访问控制列表之基本ACL、高级ACL 、 高级ACL之ICMP、高级ACL之telnet
- Linux ftp服务器虚拟用户的建立
- public class A implements B{} --java