当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:以湖南农业农村信息化综合服务平台农业知识推送研究为基础,在研究了安卓系统的多分页快速切换TabHost 控件以及SQLite数据库的基础上,利用百度提供的免费接口采集的天气预报信息,开发了天气信息采集与推送系统,以便农 戶可根据系统设定的城市名来获取对应的天气信息,同时可根据关键字向指定用戶推送包含指定城市天气情况的SMS短信服 务。通过一系列测试证明,本系统具有信息定期自动更新、流量节省、操作简单、推送方便等特点。

引言

随着我国农村信息化建设在农村地区逐步推广和人们生 活水平的提高,手机在农村已成为日常生活必须品,智能手机 在农村的份额逐步扩大叫天气软件是作为一款非常实用的信 息服务工具受到越来越多人的欢迎,但这个工具大多只局限于 智能手机,如何使一般手机也能及时收到当地天气信息,同时 在离线情况下也能查询,进一步扩大气象信息服务在农村的 覆盖面,让广大农户能够在第一时间方便快捷地获取最新的 气象信息,以便提前预防,把气象灾害造成的损失降到最低 就成了亟待解决的问题。另外手机天气系统的完善对强化气象 公共服务的职能,完善公共服务体系,改善公共服务手段,增 加公共服务产品,提高公共服务质量,更好地发挥气象事业对 农村经济社会发展的推动功能具有不可替代的作用。

1背景介绍

随着我国农业农村信息化的发展和信息技术的进 步,为进一步夯实农村经济,2011年至2012年国家科技 部先后在主要农业省份开展了“农村农业信息化关键技术 集成与示范(2011BAD21B00)”与“农村物联网综合信息 服务科技工程(2012BAD35B00)”等课题研究,湖南科 技厅组织部分高校承担了相应科研任务,并进行校企合作,成功搭建了湖南农村农业综合服务平台,希望通过此平 台能将各个零散的农业知识进行汇集整理,再有序推送给有 需求的农户。如何保证农户能及时获取气象信息,并扩大 气象服务覆盖面,项目成员在研究安卓系统的多分页快速切换 TabHost控件及SQLite数据库基础上,利用百度提供的免费 接口采集天气预报信息,并采用手机短信等功能,开发了一个 天气信息采集与推送系统。

2设计思路

本系统主要采用Eclipse作为开发工具,配置Android的 SDT开发插件,应用百度网站上提供的免费接口,使用基于 JSON-RPC的Web Service技术来实现与服务器端的信息交 互,并根据系统设定或获取的城市名采集指定的天气信息, 执行存入SQLite数据库,并显示到手机页面上,同时根据指 定关键字,以SMS短信方式向其它用户发出天气服务信息。

3系统实现

3.1系统框架结构图

通过对本系统进行功能需求分析,可将整个应用程序划 分为4个模块,分别是用户界面、后台服务、数据库适配器和 短信监听器,如图1所示。从图中可以看出,后台服务由用户 界面通过Internet启动,且可以在用户界面关闭的情况下仍然 保持运行状态,直到通过用户界面发送Internet停止服务,或 系统因资源不足而强行关闭服务。用户界面直接从后台服务获 取天气信息,通过调用数据库适配器,向SQLite数据库中读 写配置信息,或对SMS短信服务信息进行操作。

短信监听器是一个BroadcastReceiver,监视所有接收到 的短信,如果短信中包含用户自定义的关键字,短信监听器则 认为这条短信是天气服务请求短信,将短信的相关信息写入后台服务的短信服务队歹u。如果用户在配置信息中选择无需提 供短信服务,短信监听器仍然继续监听所有短信,只是后台服 务不再允许将服务请求短信写入服务队列。

面。

这样,系统就可提供定时更新功能,并根据用户选择设 置每天天气自动更新的起始时间及更新时间间隔。

手机天气信息采集与推送系统分析与设计

数据库适配器封装了所有对SQLite数据库操作的方法, 用户界面和后台服务会调用它实现数据库操作。

3.2需求分析

从两个方面进行分析,一是功能需求,二是界面需求。

(1)功能需求

可以通过图片和文字显示当前和未来几天的天气状况, 也可以捜索指定地区的天气情况,包括温度、湿度、风向和雨 雪情况等,这些天气数据通过后台服务获取,后台服务按照 一定时间间隔,从百度上获取天气预报信息,并将天气信息保 存在数据库中;同时通过提供基于SMS短信的天气数据服务, 其他手机用户可以向安装了此软件所在的手机上发送SMS短 信,在短信中包含特定的关键字,则可以将已有的天气情况通 过SMS短信回复给用户;最后每个发送的SMS短信都会被 记录下来,用户可以浏览或删除这些记录信息。

下面可以利用UML图从3个方面进行分析,具体如图2~ 图4所示。

图2查看天气信息的时序图

2)界面需求

为了适用农户操作,操作界面要求简单明了,因此系统仅 包含三个用户交互界面,即:显示天气预报的用户界面;显示 已发送SMS短信的用户界面;浏览和设置配置信息的用户界

手机天气信息采集与推送系统分析与设计

3.3数据库设计

本系统釆用SQLite数据库,命名为weather_app.db,划 分为2个数据表,分别是配置信息表(DB_TABLE_CONFIG) 和SMS短信服务信息表(DB_TABLE_SMS)。

配置信息表主要保存目标城市的名称,访问百度更新天 气信息的频率,请求天气信息服务短信的关键字,以及是否 提供短信服务和是否记录短信服务内容。在weatherapp工程 中配置信息表结构如表1所列。

手机天气信息采集与推送系统分析与设计

SMS短信服务信息表主要保存请求天气服务短信的发送 者、短信内容、接收时间和回复信息的内容。在weatherapp 工程中SMS短信服务信息表结构如表2所列。

3.4主要模块实现

数据库适配器是最底层模块,可用于封装用户界面和后 台服务对SQLite数据库的操作。核心代码主要在DBAdapter. java文件中。用户界面会调用其方法SaveConfig。和LoadConfig(),从SQLite数据库中保存和读取配置信息。保

存配置信息时,SaveConflg()函数会将Config类中的公有静 态属性写入数据库;反之,LoadConfig()会将数据库中的配置 信息写入Config类中的公有静态属性,同时调用DBAdapter 类的是后台服务,即WeatherService类。

手机天气信息采集与推送系统分析与设计

用户保存配置信息的类文件Config.java关键代码如下: packageedu.hunau .wuhui.weather. DB;

public class Config {

public static String CityName;

public static String RefreshSpeed;

public static String ProvideSmsService;

public static String SaveSmsInfo;

public static String KeyWord;

}

其中属性 CityName、RefreshSpeed、ProvideSmsService、 SaveSmsInfo和KeyWord完全对应数据库中保存配置信息表 的属性参照表1)。在程序启动后,保存在数据库中的城市名称、 更新频率、是否提供短信服务、是否保存短信信息和关键字 等内容,将存放到Config类中,供其它模块做逻辑判断时使用。

短信监听器用于监听Android系统所接收到的所有SMS 短消息,可以在应用程序关闭后仍然继续运行,核心代码在 SmsReceiver.Java文件中,主要用来保存短信的发送者、内容、 接收时间和返回天气信息等短信内容。

后台服务是weatherapp工程的核心模块,在用户启动后 持续在后台运行,直到用户停止服务。后台服务主要有两个功 能:一是周期性获取百度的天气数据并存储到SQLite (数据 获取子模块),二是发送包含天气信息的SMS短信(短信发送 子模块)。

其中天气数据的获取分为以下三个步骤:

首先GetWeatherData。函数首先根据指定的URL地址, 从网络获取字节流数据。本系统的天气数据是从百度提供的 Web Service中获取的;其次调用轻量级json解析器对天气数 据进行解析,并将解析结果保存在Weather类的公有静态属 性中;再将解析好的数据存储到SQLite数据库中。

短信发送子模块主要在后台单独运行,核心代码 为 WeatherService.Java, 首 先调用 ProcessSmsList()函 数,检查短信队列中是否有需要回复的短信,然后调用 GetGoogleWeatherData()函数获取天气数据,最后线程暂停1 s, 以释放CPU资源。

用户界面设计采用可多分页快速切换的TabHost控件。它 的每个标签页都与一个Activity相关联,并且将不同标签页的 代码放在不同的文件中,每个标签页都可以有独立的选项菜单。 这里共设置了 3个标签页。TAB1的标题为“天气预报”,关 联的Activity为WeatherActivity, TAB2的标题为“历史数据” 关联Activity为HistoryActivity,TAB3的标题为“系统设置” 关联Activity为SetupActivity。其中标签页中的具体显示内容 依赖于每个Activity所设置的界面布局。

3.5系统测试

系统测试主要划分为3个内容,一是对天气信息的获取, 图5所示是其天气信息获取界面图;二是天气信息的推送,图6 所示是天气信息短信推送界面;三是系统设置方式,图7所 示是其系统设置界面。

图5天气信息获取界面 图6天气信息短信推送界面图7系统设置界面

4结语

与别的系统相比,本系统的后台服务使用了工作线程, 通过后台服务获取天气数据,通过直接从后台服务获取天气 信息,而没有直接通过网络访问百度的天气数据,可以避免 因网络通信不畅造成界面失去响应。

同时本系统提供了短信服务,对于没有安装该软件的用户, 特别是农村老式手机(可以通过短信获得天气情况)特别有用, 且在用户关闭界面后,后台服务仍然可以更新天气信息,以保 证短信服务数据的准确性。

由于针对农村市场,此系统操作界面十分简洁、设计人 性化、实用性强,在保证安全性前提下,获取的数据比较准确, 能很好地发挥气象事业对农村经济的指导作用。

20211222_61c32df4d1f0b__手机天气信息采集与推送系统分析与设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭