怎么设置天气预警?
这是可以实现的,在之前发布的Android 4.2中已经加入了对NFC ULP(超宽带)的支持,而最新发布的4.3更是提升了NFC传输的带宽,理论上来说,可以通过与带有相关功能的手机交换数据的方式来实现对周边天气的获取和呈现。 不过由于Google尚未发布有关NFC ULP的标准或者开放相关的API,所以暂时无法通过简单的代码来实现,下面介绍一个通过其他方式间接获取本地天气信息的方法。 在实际演示的时候遇到了一个问题,就是当前所在位置的GPS信号会被其他基站的信号所干扰,导致不能准确的确定当前位置,因此尝试了不同的方法来获取比较准确的位置,最后找到了一种方法能够在排除掉干扰的基础上较为精准的获取到当前位置的信息。
下面以Java为例,在项目中导入所需jar包,然后在初始化的时候传递相应的权限: 之后在需要调用位置信息的函数上方添加相应权限的验证: 以上都是在程序运行前所需要做的准备工作,接下来在需要定位的时候分别输出经纬度信息即可,然后通过HTTP请求发送给后台服务器并使用Gson进行解析: 最后在服务器端使用GeoCode搜索引擎将经纬度转换为地址信息并返回到前端展示就可以了。
当然,这样获取到的位置信息可能不够准确,可以进一步使用更加精准的方法: 最后,为了便于展示,把上述代码放入了GitHub上,感兴趣的同学可以看一下。 以上就是借助现有API和开源项目的功能间接获取离线本地天气信息的方式,相比传统的基于网络请求的方式,它减少了流量的使用,同时在获取精度方面也要好于单纯靠GPS的信号。