实 验 报 告
实验四 天气预报
姓名:
学号:
课程名称:
所在学院:
专业班级:
任课教师:
实验项目名称
实验四 天气预报
1、实验目的:
练习掌握 Android 软件开发基本编程技术、后台服务、网络访问、网络资源使用等,设计制作一 Android 天气预报查询软件。
2、实验内容:
实现的功能和界面可在实验开发中由每位同学自己设计,通过网络访问获取天气预报信息。以下功能和软件界面供参考:
天气预报使用中国天气网的接口。有一个显示天气情况的界面,通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向、日期、星期、发布时间和雨雪情况等。这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从中国气象网上获取天气预报信息,并将天气信息保存在后台服务中。软件还需要提供基于 SMS 短信的天气数据服务,其他手机用户可以向本手机发送 SMS 短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS 短信回复给用户。最后,每个被发送的 SMS 短信都会被记录下来,存储在数据库里。
3、实验要求
(1)每位同学独立设计软件功能、完成软件的开发与测试。
(2)软件完成后由任课教师检查、提问软件功能、软件的设计和开发的代码。
(3)每位同学独立完成实验报告(包括学号、姓名,实验目的、实验内容、软件功能、设计思想、实验总结等),并将实验报告和开发软件的工程文件压缩包提交任课教师。
四、实验重要代码
  实验的核心代码主要是下截图的红框部分:
                         
  以下解释核心代码,具体文件见WeatherDemo.
1. 三大功能实现模块的设置(WeatherDemo.java文件)
  三大块:天气预报、历史数据、系统设置
 
 
2. 获取实时天气数据,设置API接口。(WeatherAdapter.java)
    这一段功能的实现,首先需要自己去中国气象网申请一个免费的API。给每个城市设置一个ID号,比如下截图:
 
  设置密钥以及设置显示格式的实现代码如下:
  获取天气 部分的实现代码如下:
3. 菜单选项(启动服务/停止服务/刷新/退出) 
 
 
4. 短信请求功能(SmsReceiver.java)
  短信接收,这里有一个判断,就是发送请求的用户输入的关键字(KeyWord)和系统本身设置的关键字是不是一样。如果满足,就收到请求弹出框。(实现结果可以看五)
  关键代码如下截图。
五、实验结果展示(工程运行结果)
1.用户面:
           
天气预报代码大全        三大块功能块的介绍:     
             
         
  2.实现
  (1)天气预报
设置要获取天气的城市,输入它的城市ID,这里以101020100(上海)为例。
(所有城市的ID在获取中国天气网API时设置在WeatherAdapter.java中)
      更新频率为10秒/次,短信服务关键字为SH
     
      设置完毕之后,点右上角刷新,查看用户界面的天气预报,结果如下:
                       
   
(2)模拟
    在tool->android 中设置模拟发送短息要求。
    比如手机会收到来自用户156001078获取天气预报的请求。虚拟手机会收到该手机发送的带有关键字SH的弹出短信。
  (因为手机不适配的问题,在自己手机上无法进行短信发送功能模拟,所以换用虚拟机,实现短信发送功能。)
           
6、实验结论(实验中的困难或需要注意的点)
实验提供的WeatherDemo已经提供了基本的功能,在基础上进行修改。
1. 遇到的问题首先是处理乱码问题,在Android 中文件中加入ding = "GBK";其次是获取天气API接口设置密钥,这个过程也比较漫长,在注册成功获得免费接口之后,对WeatherAdapter.java进行修改,主要是import了JSON内容。
然后解决了上面的问题之后,在运行三大功能的时候,对SMS短信接收功能的运行出现了很多问题,一个是手机类型不支持,导致无法接收到短信,设置断点解决问题,最后利用虚拟机模拟,成功的实现了短信接收功能。
2. 实验基本的实现最基础的天气预报功能:天气预报、历史数据、系统设置,以及一个简单的 菜单目录;学习了如何利用 Android 软件开发基本编程技术、后台服务、网络访问、网络资源使用等,制作完成这个Android 天气预报查询软件。
3. 逐渐熟悉软件Android studio的使用,但是还需要再以后的实现中继续熟练巩固。
七、教师批阅意见:
成绩评定:
                                教师签字:             
    年      月      日     
八、备注:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。