Android之基于小米天气的天气源库
大概去年的这个时候,有跟大家分享简洁天气这个应用。
该应用一開始使用的是中国天气网的数据,可是,由于须要反复多次请求server获取信息才干满足我们的需求,因此。后来我偷偷的将天气源更换成“知趣天气”的server(如有冒犯,请谅解,本人仅仅是用作学习交流)。由于该server将我们须要的天气数据又一次处理了一下。包含当前天气信息、未来6天的预报以及空气质量等等信息。
并且仅仅须要请求一次server,传入相应的城市名称(简洁天气中自带一个数据库),链接例如以下:
(编码方式为utf-8,注意一下就可以)
这样能够使我们的应用降低请求server的次数,为用户节约了宝贵的流量。当然,这样的偷别人server数据资源的做法是可耻的,不建议大家使用!
这里仅供学习交流!
近期偶然的一次,我用小米的机器调试一个应用,通过一个命令打印log信息:adb logcat | grep "miuiVersion",意外的发现了小米天气的链接暴露在我眼前:
抱着不用白不用的心态。我将此接口又一次封装了一下。做成一个获取天气数据的库,希望能帮助大家学习。
本天气数据库已经分享在OSChinaserver上:http://git.oschina.net/way/WeatherPlugin
使用起来也是很easy的:
①.新建一个project,而且将WeatherPlugin当作他的一个库,并在AndroidManifest.xml文件里增加网络请求权限:
<uses-permission
android:name="android.permission.INTERNET"
/>
②.通过WeatherSpiderFactory获取一个单例对象。并传入一个城市的code(比如北京是:1010100。另外我有将全国2500个城市的数据有放在样例project的assets文件夹下,请注意查看)。
③.在异步线程中调用generateWeatherInfos()函数。将请求server而且解析获取到的天气数据(天气数据支持三种语言:简体中文、繁体、英文,事实上本人也就懂这几种语言,哈哈~)。
WeatherSpiderFactory factory = WeatherSpiderFactory.getInstance(this,
"101010100");
final WeatherSpiderFactory.ISpider spider = factory.getAvailableSpiders();
new Thread(new Runnable() { @Override
public void run() {
spider.generateWeatherInfos();
Log.i("liweiping", spider.getAlerts().toString());
Log.i("liweiping", spider.getRealtime().toString());
Log.i("liweiping", spider.getAqi().toString());
Log.i("liweiping", spider.getForecast().toString());
Log.i("liweiping", spider.getIndex().toString());
}
}).start();
下面为打印的Log信息:
怎么样?非常easy吧?其它的我也就不多说了,有兴趣的能够下载看看。
最后请注意:
本人没有严格測试此库,bug是肯定存在的。假设有更好的建议,欢迎留言讨论。谢谢大家!
Android之基于小米天气的天气源库的更多相关文章
- 基于scrapy爬虫的天气数据采集(python)
基于scrapy爬虫的天气数据采集(python) 一.实验介绍 1.1. 知识点 本节实验中将学习和实践以下知识点: Python基本语法 Scrapy框架 爬虫的概念 二.实验效果 三.项目实战 ...
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- 基于vitamio的网络电视直播源码
这个项目是基于vitamio的网络电视直播源码,也是一个使用了vitamio的基于安卓的网络直播项目源码,可能现在网上已经有很多类似这样的视频播放应用了,不过这个还是相对来说比较完整的,希望这个案例能 ...
- Android开发之漫漫长途 Ⅵ——图解Android事件分发机制(深入底层源码)
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- Android应用---基于NDK的samples例程hello-jni学习NDK开发
Android应用---基于NDK的samples例程hello-jni学习NDK开发 NDK下载地址:http://developer.android.com/tools/sdk/ndk/index ...
- 分享一个基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具
soar-web 基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具,支持 soar 配置的添加.修改.复制,多配置切换,配置的导出.导入与导入功能. 环境需求 python3.xF ...
- Android下基于PCM的音频渲染
环境准备 请按照我之前的文章-Android下基于SDL的位图渲染,安装必要的开发环境. 实践篇 这里主要参考Beginning SDL 2.0(6) 音频渲染及wav播放,只不过将源从WAV文件改成 ...
- Android下基于SDL的YUV渲染
实战篇 本文主要参考我之前整理的文章windows下使用SDL进行YUV渲染. 相对于之前写的位图渲染部分(http://www.cnblogs.com/tocy/p/android-sdl-bitm ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
随机推荐
- vscode sync插件 在不同设备 同步的坑
sync的好处不言而喻,在不同的设备都可以同步自己的插件和所有配置: 但是有时有总是会有坑, 现在把我遇到的坑记录下来,以防再次踩坑 VSCode 同步方案 VSCode 的插件 Setting Sy ...
- 新飞电器的BI建设案例
一.河南新飞电器简介 河南新飞电器在制造行业内属于领先地位,其信息化程度较高,面对系统多且杂乱的情况,一个集中展示数据的平台就显得尤为重要.使用BI就是为了在一个相对统一的平台展示需要查看的数据,供决 ...
- 敏捷团队的组织与管理--- MPD软件工作坊培训感想(下)
注:由麦思博(MSUP)主办的2013年亚太软件研发团队管理峰会(以下简称MPD大会)分别于6月15及6月22日在北京.上海举办,葡萄城的部分程序员参加了上海的会议,本文是参会的一些感受和心得. 今年 ...
- android 电话监听和拦截
一.首先在manifest.xml文件中获取监听电话权限,注册监听电话的Activity <receiver android:name=".PhoneReceiver"> ...
- Android GetMethodID 函数的说明
GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类中声明为 public的参数或方法.使用如下: jfieldID topicField ...
- ChatOps如何变革企业业务
[编者按]本文作者为日志分析软件公司 Logz.io 的联合创始人 Tomer Levy,主要介绍 ChatOps 的特点与发展历程,以及将来可能带来的业务变革.文章系国内 ITOM 管理平台 One ...
- Oracle EBS INV 更新状态
使用API改变现有物料状态,改成如下:On-Hand, Subinventory, Locator, Lot & Serial.参数使用如下:H, O, S, Z, L.对应如下: 'H' - ...
- post请求的四种数据格式
1.application/json:这是最常见的 json 格式:{"input1":"xxx","input2":"ooo&q ...
- windows10操作系统中cmd窗口下telnet功能失效的解决方案
查找windows自带功能,在window10中相当方便.打开windows10的设置面板,在搜索栏中搜索“windows功能”,弹出以下界面: 根据弹出的提示“启动或停用windows功能”即可弹出 ...
- ubuntu安装python-ldap模块
模块 一直很头疼好多依赖的模块 今天安装一个python-ldap 和ldap交互的模块 首先安装的时候会提示我们 compilation terminated. error: command 'x ...