第28卷第2期 2017年6月
广西科技大学学报
JOURNAL OF GUANGXI UNIVERSITY OF SCIENCE AND TECHNOLOGY
Vol.28 No.2
Jun. 2017
文章编号2095-7335(2017)02-0029-06 D O I: 10.16375/jki45-1395/t.2017.02.005
基于Android的智能交互APP设计
陈飞,罗文广*
(广西科技大学电气与信息工程学院,广西柳州545006)
摘要:为更好地实现人与手机的智能交互性,设计了基于A ndroid系统的智能交互APP.系统选用基于A ndroid平台 的开发技术,使用E clipse作为系统的开发工具,对智能交互A P P涉及相关技术进行了介绍,并提出了在G PS定位中 测量点到区域范围的解决策略.主要概述了语音模块、G PS定位模块、W IF I自动
链接模块、智能机器人模块、A P P跳 转、语言分析模块等6个模块设计方法与流程;同时,通过对手机智能交互的需求分析,设计了功能模块,并在系 统中实现了相关的技术和算法.
关键词:Android; Eclipse; APP;智能交互
中图分类号:TP273.5 文献标志码:A
0引言
Android系统是一个基于Linux的开源操作系统[1],主要应用于移动电话等领域,因其自身具有优秀的 扩展性和丰富的硬件支持,已经扩展到了可穿戴设备、平板电脑、智能家居等领域,并不断向各个方向渗 透.当前,Android系统已经超越了 Apple的IO S系统,变成了市场份额占有率最高的智能手机操作系统.
根据2016年美国的一项调查显示,数字媒体使用时间的62%发生在移动端,并且其中绝大多数都来 自于应用,其使用时间甚至超过了电视.相比而言,用户花费在桌面上的时间从2013年的49%大降至38%. 平均每天人们在使用APP上所花费的时间超过3 h.相比于传统浏览器,移动环境下的A PP拥有更加便捷 和丰富的用户体验;相比于传统的W AP手机网站,APP具有资源广泛、个性化定制、获取方便、传播迅速、功能和形式丰富而有趣等优势[2];所以,用户使用A PP的时长和频次仍在持续增加.因此,设计使用Android 的智能交互A PP系统具有良好的前景和重要的意义.
1设计思路与功能
本A PP基于安卓平台,通过GPS定位系统描述并记录此处的经度和纬度,利用经纬度相关信息获得 对应该区域的一些相关信息.具体功能实现步骤如下:
S t e p l用户打开本A PP软件进人主界面后,首先发送连接请求,检测用户是否连接网络,如果连接失 败,则在主界面弹出对话框“网络连接失败这时用户可以选择打开手机流量连接或者点击主界面下方 W IFI连接按钮.如果点击W IFI按钮,则自动跳转到W IFI的设置界面,自动打开W IFI并且生成W IFI信号 下拉列表,点击可连接到指定W IFI信号,如果需要密码验证则弹出输人密码对话框,验证即可连接[3];
Step2网络连接成功以后,本A PP开始自动获取手机所在位置的GPS地址,并检测用户和指定地址 范围的距离;
Step3当用户到达一定地址范围时,开始智能推送用户可能需要的相关讯息.例如到达车库范围时语 音询问用户是否需要打开导航系统,当用户走出“家”这个范围时,本A PP在后台将接收天气相关讯息,然
收稿日期:2016-11-18
基金项目:国家自然科学基金项目(61563006)资助.
*通信作者:罗文广,工学硕士,教授,研究方向:自动化专业教学和科研工作,E-m ail: wenguang.luo @163.
30广西科技大学学报第28卷后根据天气的相关讯息筛选判断是否需要提示用户携带雨伞等[4].
2系统总体设计
2.1软件结构设计软件结构设计就是一个宏观上把软件需求变成软件表示的过程.主要是利用分层来设计软件模块,然 后把软件模块组织成一个优良的层次系统,再描述出各层次模块之间的关系,而且下层模块主要负责为上 层模块提供相应支持.
知道了所设计系统的功能之后,先使用结构化设计方法划分软件层次,再详细设计各层的模块,最后 分析功能需求和系统模块之间的调用关系.
2.2软件模块结构
软件的分层设计是总体设计阶段常使用的一种软件结构设计方法.本APP 也采用了分层结构,分别由 用户界面层(本A PP 中的该层是由Eclipse 中许多.xml 文件组成,如l ,l 等)、用户功能层 (本A PP 中的该层是由Eclipse 中许多.java 文件组成,如MainActivity.java ,GpsActivity.java 等)、中间件层(例 如使用图灵机器人API ,语音机器人API 等)和操作系统层(Android  4.0操作系统)等4
层结构组成.
本APP 软件在操作系统层,使用了 Android  4.0操作系统,所以只要用户使用的Android 操作系统版本 高于4.0都可以使用本软件.
在中间件层编辑了图灵机器人模块(TulingActivity .java )、语音机器人
模块(VoiceActivity.java )、GPS  定位模块(GpsActivity.java )、WIFI  自动链接
模块(WifiActivity.java  )、APP  跳转模块(SkipActivity .java )和语言分析模块
(AnalyseActivity.java )等6个主要.java 文件,用来实现本APP 的主要功能.
在用户功能层,主要通过MainActivity.java 文件实现中间件层中各个
主要模块间的相互调用关系以及用户界面层中按钮的功能.
用户界面层,主要设置了界面的布局,并添加了图片边框以及一些按
钮等,如l ,l ,l 等文件.软件层次图如图1所示.
本APP 每层与每层之间有着自上至下的依赖关系,并且下层能为上
层提供服务接口,如果有一层的内部实现发生了变化,只需要外部的接口
不改变,一般不会影响到其他层.而且每层按模块来划分,每个模块相互
独立,不相同的模块间由接口相关联,以满足高内聚低耦合的标准[5].3模块的具体设计
本次APP 的设计参考了当今社会上主流的Android 软件开发流程,
程序的编写和界面的开发是利用Eclipse [6]集成开发平台并结合使用了集
成组件ADT 共同完成的,系统的界面设计主要使用了 XML 页面布局工
具,由Style 样式文件和图片组合来完成.本APP 主要由语音模块、GPS 定位模块、W IFI 自动链接模块、智能 机器人模块、APP 跳转模块和语言分析模块等6个模块组成.
3.1语音模块设计
用户通过语音请求形式输人到语音模块,在语音识别后通过智能机器人进行信息处理,再将处理信息 反馈用户.
3.1.1第三方语音库T T S 选择TTS(Text  To  Speech )即“从文本到语音”,能够让人和机器进行对话.目前, Android 系统能够使用的语音库主要有3种,分别是Svox ,Eye 和系统自带的Pico  TST 语音库.但是系统自 带Pico  TST 语音库不支持朗读中文的功能,所以会给系统的开发带来一定程度上的不便.另外两种语音库 Eye 和Svox 都支持中文,但是Eye 开源的朗读效果不好,所以最后选择了相对稳定的Svox 来作为识别语音 资料库.
3.1.2 S T T 语音识别的引擎选择语音识别的引擎有Linux 的开源语音识别引擎Simon ,nuance 等,这些
图1软件层次图
Fig.1
Software hierarchy chart
第2期陈飞等:基于Android 的智能交互APP 设计31开源语音识别引擎在英文领域中的识别效果非常好,但对
中文的识别存在着不足,所以本APP 选择了 google 自带的
识别引擎'可以增强对中文的支持效果.语音模块流程图
如图2所示.
3.2安卓GPS 定位设计
3.2.1 GPS 坐标与计算GPS (全球定位系统)主要由三大
块组成:卫星、地面控制站、接收机.GPS 接收机包括手持机
和车载导航机,当前手机几乎都配备GPS 定位功能,在手机
中的导航功能是由GPS 定位技术与其他技术相结合衍生出
的功能,因此GPS 定位的精度十分重要.
在GPS 的经度和纬度中,地球上每个纬度之间的距离
可以近似地当作是117 km ,每个分度间距当作1.95 km ,
每个秒度间距当作32 m ;但是经度间距会随着纬度的升高而逐渐减小,在某处的经度长度可按照以下公式 计算:
linux和安卓的关系
图2语音输入功能模块流程图 Fig.2 Voice input function module flow chart
1° =111.413cos ^-0.094cos 3^(km )
由手机GPS 获得的GPS 经纬度数据一般为十进制度,但是使用度分秒表示经纬度可以有一个更加直 观的距离概念,十进制度与度分秒之间的转换公式为:
十进度=度+分/60+秒/3 600
所以,经计算经度每变化0.000 01度(0。0’0.036"),则对应在赤道附近的地球表面距离约为1 m 多, 当在地球南北极极点上时,只有0 m ;纬度则是比较固定的,其在地球表面任意地方每变化0.000 01度所 对应的地球表面距离大约都是1 m [8].
3.2.2 GPS 位置与状态监听本APP 的GPS 定位系统主要用来描述并记录用户的经度和纬度.GPS 的定 位设计,主要是通过位置管理器(LocationMangager )来控制与定位有关设备的,而后由位置监听(LocationLis - tener )来监听设备的开关和状态,从而获得用户的相关位置信息(Location );然后,通过GPS 状态监听 (GpsStatus 丄istener )获取卫星状态信息,并创建一个迭代保持器保存所有卫星;最后绑定监听状态,从而获 取经纬度等信息[9].部分代码如下:
Iterator <GpsSateUite >iters =gpsStatus .getSatellites ( ).iterator ( ); //创建一■个迭代器保存所有卫星,
从而获得所有卫星状态
ArrayList <GpsSatellite >sateUiteList=new  ArrayList <GpsSatellite > ( ); // 通过遍历的方式再次整理成 Ar -rayList 列表,从而可以获得卫星的方位等GPS 状态信息.
3.2.3 GPS 范围设定获得经纬度信息后,利用google 算法计算出手机所在位置的经纬度坐标(如经度 109.444 495 83,纬度2
4.329 188 7)和设定的“家”所在范围中心点坐标(如经度109.444 450 00和纬度 24.329 150 00)之间的直接距离;再以这个“家”的中心点为中心,“家”对角线长度1/2为半径,得到一个圆 形区域;最后根据这个直接距离与圆域半径做比较,从而判断目标是否在该范围内,如果在,则表示进人了 “家”的范围.多次测试,误差在1 m 左右[10].部分代码如下:
double  s  = Math .Acos (Math .Cos (radians (Degree 1.X )) * Math .Cos (radians (Degree 2.X )) * Math .Cos (radians (De - gree 1.Y ) - radians (Degree 2.Y )) + Math .Sin (radians (Degree 1.X )) * Math .Sin (radians (Degree 2.X ))); // 利用 google 算法算出两点(U )和(X 2,Y 2)之间直接距离
3.3安卓之W IFI 自动链接设计
本APP 设计的WIFI 模块主要是为了便捷用户联网:当到达某个经纬度坐标范围,如进人“家”范围 后,
实现自动打开WIFI 的功能(如果WIFI 状态已经为开启状态,再次开启后状态不改变),再通过GPS 坐 标范围判断用户是否到达“家”的范围,最后连接WIFI ,由智能机器人推送相关信息(如天气情况和菜谱 等),便捷了用户的体验与交互的使用[11].WIFI 模块设计流程图如图3
所示.
32
广西科技大学学报第28卷
3.4安卓智能机器人设计智能机器人一图灵机器人是本APP 的核心模块之
一.图灵机器人的API 是建立在人工智能核心能力(其
中包括语义理解、场景交互、智能问答、知识管理等)的
基础上,为企业和开发者们提供一系列基于大数据平台
与云计算的开发接口和在线服务.
通过图灵机器人的API 可以创建各类在线服务,自
由定义机器人的相关属性、编写图灵机器人智能问答的
相关内容,设计出个人专属的智能交互机器人,还可以
支持多种渠道的快速接人,如QQ 聊天、平台等.本
A PP 的设计采用了第三方控件一图灵机器人的API ,选
用了 GET 的请求方式,并在GET 方法中使用URL 请求
的方式来传递用户的请求信息.
本APP 设计加人了智能机器人后,用户可以和智
能机器人相互聊天,具有一定的智能交互性.但为了提
升其智能程序,还需加人一些检测与触发程序.例如:当
用户到达指定GPS 坐标范围后,通过所测得的GPS 经
纬度坐标判断是否已经到达或者离开指定的范围,再智
能推送一些相关信息[12].图4是以离开家推送天气状况
为例的流程图.
3.5 A P P 跳转设计APP 跳转设计主要是用来从本A PP 跳转到其它
APP 应用,如从本APP 跳转到百度导航或天气预报等
APP 上间.
以百度导航为例:百度导航的安装包为baidudao -
hang _61.apk ,如果手机上已经安装了百度导航APP ,则
当需要跳转到本APP 时,会直接跳转到本APP ;当手机
上没有时,则打开浏览器去下载百度导航.部分代码如
下:
intent  = LaunchIntentForPackage
("baidudaohang _61.apk "); //通过包名获取要跳转的
APP ,创建intent 对象
Intent  ("android .intent .action .VIEW ",Uri.parse  ("http :
//gdown . b aidu . c om / d ata /wisegame /abc 0c 81 a aeedb 8f 4/
baidudaohang _61.apk ")); // 如果没有安装 APP  就打开一
(连续w i f i )
图3 W IFI 设计流程图 Fig.3 WIFI design flow chart (提醒用户带伞)
个浏览器去下载
图4智能天气推送流程图
3 6 语言分析模块设计 Fig.
4 Intelligent weather push flow chart 本模块主要功能是用来给用户设置提醒功能.例如
当用户走出家的GPS 范围时,后台通过图灵机器人发送本地天气的请求,在后台接收到的数据中选取本日 天气数据,从而分析天气情况.如果有“雨”字,则通过图灵机器人给用户输出提醒带伞的语音与文字.同理, 当检测到车库范围时询问用户是否带伞,当用户回答表示肯定的语气词时,后台发送跳转请求等.4演示成果
本次APP 设计基本功能已经完成,GPS 可以获取到所在的坐标.下雨天离开“家”的范围后,
手机会提
第2期陈飞等:基于Android的智能交互APP设计33
示用户带伞;回“家”时,W I F I会自动连接上W IF I,并提示用户是否需要菜谱等信息;当用户进入“车库”范 围时,会提示是否需要G P S导航等.语音机器人也可以达到智能交互的目的.
启动A P P后当用户走出“家”的G P S设定范围后,本A P P会在后台自动查询天气情况,如果城市有雨 将会提示用户带伞,即设置一个触发,后台接收天气信息,如果有“雨”字,则触发提示带伞信息.如果用户 询问城市天气,本A P P将会自动播报出该城市4 d内天气情况,A P P界面即演示效果如图5所示.
当用户需要连接W IF I时,点击W IF I选择按钮,手机可以自动打开W I F I功能,并显示W IF I信号列表,点击即可快速连接,演示效果如图6所示.
晚上9:24 i t ..ill 4G (S I#—米阳光
2016-10-2421:22:42
主人:今天有雨,出门建
议带伞。晚上9:25 ^..ill C*>昝一米阳光三
搜索W IF I信号
360 免费 W iFi-23-2e:2a:70:71:88:2e
PHICOMM_F181C8-f0:eb:d0:f1:81 :C8
柳州:10月24号周一 25-27。阵雨
南风微风:10月25号周二24-32。多云 南风微风:10月26号周三24-33°多云 南风微风:10月27号周四23-33°多云
南风微风;sony-sony-bc:46:99:70:ed:a6
CMCC--12:49:3b:09:95:80
CM CC-W EB--30:49:3b:09:95:80
TP-LINK_EEFO--f4:83:cd:89:ee:f0 TP-LINK_lwd-30:fc:68:90:57:df
qq-c8:3a:35:47:96:d0
TP-LINK_DD 1376-a8: 15 :4d:dd: 13 :76
发送@i-柳州(政府免费 W iFi)-38:91:d5士4:c3:31 W IF I选择G PS地址CMCC-WEB-30:49:3b:09:8f:bd
图5根据天气智能提醒用户带伞Fig.5 Smart reminder user to carry an umbrella according to the weather
图6 W IFI显示模块Fig.6 WIFI display module
当用户希望知道自己的G P S地址时,点击“G P S地
址”按钮可以准确得到用户所在处经纬度信息,演示效果 如图7所示.
当到达车库时,语音提示询问用户是否需要打开百 度导航A P P,当接收到用户需求后触发打开百度导航A P P,如果没有装百度导航A P P,则会跳转到下载页面.这 里演示了直接跳转打开百度导航A P P,如果没有装百度 导航A P P,跳转到下载页面效果相似,只是跳转部分打开 的是浏览器,演示效果如图8.|晚上9:28…◎兮』il C*丨釋,一米阳光
设备位置信息
经度:109.444 495 83
.纬度:24.329 188 7
图7 G PS显示模块
Fig.7 GPS
display module

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