高校设备管理系统中Android客户端的设计与实现

    王红勤

    

    

    

    摘要:在深入分析现有高校设备管理系统功能的基础上,文中设计了基于Android平台的客户端功能软件。该软件实现了用户账号登录、扫描登录二维码登录、查看用户个人信息、查看当前领用设备记录、扫描二维码/条形码检索设备信息等功能。该软件使设备管理系统的功能更加完善,且具有界面友好,操作便捷,兼容性强,便于后续开发和维护等特点。

    关键词:设备管理;Android客户端;搜索设备;扫描二维码

    中图分类号:TN929 文献标识码:A 文章编号:1009-3044(2016)12-0146-04

    Abstract: Intensively analysis the function of existing equipment management system of University, the client app is designed base on Android platform. The software has realized the user account login, scaning the logining-qr code, check the users personal information, view the current usage records, scanning retrieval equipment information, and other functions. The software enables the function of equipment management system more perfect, the interface of software is friendly, convenient to operate, strong compatibility, which facilitates the subsequent development and maintenance, etc.

    Key words: equipment management; Android client; search equipment; scan the QR code

    随着高校信息化建设速度的深入发展,高校所使用的设备越来越多,种类也越来越复杂,而原有管理方式无法适应现代化管理的需要,出现了许多不足,从而对高校设备的管理成为重要研究问题。因经,拥有一个功能完备、操作便捷的设备管理系统,是众多高校设备管理的首选。

    根据设备管理系统的需求,我们对设备管理信息系统进行了详细的设计,包括Web端和Android客户端。Web端主要分为六大模块,包括设备管理、记录管理、报表统计管理、库存管理、权限管理和系统管理功能模块; Android客户端分为查看用户信息、查看领用记录、扫描检索设备、搜索设备等模块。该系统不仅能够使设备管理者对设备信息的录入、审核、查询和统计等功能快速方便的操作。对于设备使用者来说,也可登录移动终端,搜索相关设备、查看领用设备详情等操作,给用户带来了很大的便捷。本文侧重基于Android平台[1]的客户端功能的设计与实现,基于eclipse的开发环境,采用JAVA语言,使软件具有良好平台移植性和可扩展性,该APP软件使得设备管理系统的功能更加完善,提高用户操作的方便性。

    1 Android客户端功能需求分析

    在设备管理信息系统中引入Android客户端,主要为了方便用户的操作,用户无须使用电脑在web端登录,就可完成相关的操作。比如检索设备处是否存在某个设备,以便于领用申请,查询自己的借用设备记录等。Android客户端具体的功能需求结构图如图1所示。

    1)查看用户信息:用户使用工号从客户端成功登录后,即可查看自己的信息。

    2)扫描检索设备信息:用户成功登录后,通过扫一扫功能扫描相应二维码、条形码到设备库检索设备,若存在该设备将获取设备信息,并显示给用户。

    3)查看领用记录:用户成功登录后,可以方便查看以往领用的设备记录,无须登录web端系统进行查看。

    4)搜索设备:用户成功登录后,通过搜一搜功能,并输入相应关键词进行检索,若存在相关设备,将获取设备相应的数据显示给用户。

    2 Android客户端功能的设计与实现

    2.1 Android客户端登录模块设计与实现

    这种登录方式,需要用户输入用户名(教师工号)和密码进行登录,基于Android平台进行设计与实现。登录模块在进行设计时,页面布局需要用xml格式编写,该xml声明一个垂直的线性布局,布局中包括了两个子线性布局,其中第一个线性布局包含一个ImageView,用来设置登录界面logo;第二个线性布局通过包含两个EdiTextText(接收用户账号和密码的输入)、一个登录Button控件以及两个TextView,它们分别作用于设置用户忘记密码连接和App版权信息。 其中各个控件的样式通过Android的背景选择器selector[2]来定义,并在控件的background属性进行设置。

    实现登录功能需要用到LoginActivity和LoadingActivity,打开客户端首先会启动一个欢迎引导界面WelcomeActivity, 其次才启动登录界面LoginActivity,界面如图2所示。当用户输完账号密码点击登录按钮之后,启动一个透明背景加载等待的LoadingActivity挡在LoginActivity前面,这样做的好处是防止用户多次点击登录按钮触发登录事件。 该LoadingActivity首先获取LoginActivity传过来用户账号和密码,然后开启一个线程发送请求到服务器进行验证。若服务器返回成功登录的状态时,这时LoadingActivity会通知LoginActivity进行界面跳转并且调用finish()方法关闭自己,LoginActivity接收到登录通知,就会启动主页面MainActivity,主界面如图3所示。

    2.2 查看用户信息模块的设计与实现

    用户成功登录客户端后,点击图3主界面中的“个人信息”或者“设置”中的个人信息项,Activity会向服务器的UsersCRUDController控制器发出“getSpecificUserRoleInfo”请求,控制器会以json形式返回用户信息数据,紧接着Activity调用JsonUtil类解析传送数据展示给用户,如图4所示,相关代码如下:

    2.3 Android客户端查询领用记录设计

    点击图3中的“查看领用记录”时, 用户可以在页面查看设备的领用记录,提供设备编号、领用人,领用开始时间、归还开始时间等条件进行筛选查询,用户填写需要筛选的条件内容后点击“查询”按钮,界面如图5所示。信息将会发送给服务器,服务器调用EquipmentLogController控制器通过业务层间接调用数据访问层EquipmentLogDao的getReceordLogList ()方法来完成条件筛选,最后显示到终端。

    2.4 Android客户端二维码扫描模块的实现

    在该系统中,我们也引入二维码应用,当设备处工作人员录入设备时,系统会将设备的编号以及它的SN码生成二维码,这样做的好处是可以通过扫描,快速获取设备相关信息;其次假设我们手中有某个设备的条形码时,想领用该设备,但却不知道设备处是否有该设备,这时我们可以利用该客户端扫描手中条形码,检索设备处库中设备。

    2.4.1 扫描二维码通信过程

    Android客户端[3]要通过扫描设备的二维码,可以和Web进行建立通信,web端利用WebSocket协议实现了浏览器与服务器全双工通信(full-duplex)。在 WebSocket API中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。利用WebSocket协议,可以使得服务器主动向客户端传送数据,实现了服务器推送技术,通过过程如图6所示。

    整个的操作的过程,步骤如下:

    1)首先浏览器请求服务器生成登录UUID 以及生成登录二维码图片(使用UUID为了防止多用户时冲突)。

    2)服务器处理请求后,向浏览器返回UUID和登录二维码图片。

    3)浏览器接收到所返回的数据,处理后与服务器建一个WebSocket双向通讯通道,以便后续数据通讯。

    4)这时,我们可以利用设备管理系统Android客户端进行扫描登录二维码,客户端成功扫描并解析后,会向服务器发送信息数据,其中包括UUID、Token。同时,客户端也会跳转至授权界面。

    5)服务器接受到手机客户端请求后,及时向浏览器发出通知,告诉用户已有手机扫描登录二维码,并要求授权登录。

    6)当手机客户端确认授权浏览器登录系统,会再次向服务器发起授权通知。

    7)服务器一旦接到手机客户端确认授权通知,马上通知浏览器登录系统,这是浏览器就能成功登录系统,无须像传统那样输账号与密码,方便了操作。

    2.4.2 Android客户端二维码扫描模块的实现

    二维码扫描模块利用了Google的开源项目Zxing,进行一个二次开发。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以利用手机的内置摄像头实现对条形码、二维码进行编码和解码,目前它所支持的格式包括:UPC-A、UPC-E、EAN-8、EAN-13等等。Zxing库的主要部分支持:核心代码的使用、适用于J2SE客户端的版本、适用于Android客户端的版本(即BarcodeScanner)、Android的集成(通过Intent支持和BarcodeScanner的集成)等功能。

    1)扫描界面开发

    通过点击图3“主界面”右上角二维码图标或者发现中扫一扫,如发送一个Intent对象[4]可以启动扫描界面CaptureActivity。而原有扫描界面(提供普通横屏的扫描界面)不能满足我们的需求,因此对Zxing库改写。在本客户端中,对Zxing的扫描框ViewfinderView进行了修改,效果类似微信扫一扫,界面如图7所示,主要利用画笔绘画出扫描框边上的8个绿色矩形,然后绘画出扫描的区域。

    2)扫描二维码/条形码检索设备详情

    Web端通过QrcodeHandler类对设备以SN码和编号组合生成二维码,设置二维码的编码格式(hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M))、二维码的纠错率(hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M))以及二维码的颜色等等。

    然后,客户端得到二维码信息后会通过HttpUtil工具类向EquipmentCRUDController控制器发出获取设备信息请求,控制器接收请求处理并返回数据,最后客户端调用JsonUtil类解析数据展现给用户。检索到符合要求的设备界面如图8所示。

    3)扫描二维码登录模块的实现

    Web端扫描二维码登录系统主要利用WebSocket协议[5]实现了浏览器与服务器全双工通信,以及手机客户端配合。服务端WebSocket主要通过QrcodeLoginWS类进行实现。

    其中@ServerEndpoint 注解是一个类层次的注解,它主要是将目前的类定义成一个websocket服务器端,注解的值将被用于监听用户连接的终端访问URL地址;而@OnOpen和@OnClose注解定义了一个新用户连接和断开的时候所调用的方法;@OnMessag注解定义了当服务器接收到客户端发送的消息时所调用的方法。需注意从 javax.websocket包中引入了一些相应类。

    浏览器连接服务端WebSocket模块开发

    3 结束语

    目前,移动互联网技术迅速发展,Android操作系统的移动设备越来越多,设备管理系统的设计过程中,移动终端的应用软件也是必不可少的。本文通过对Android平台的学习,结合JAVA开发语言,设计了Android客户端的功能软件,该软件可以方便用户搜索设备,方便领用,查看用户信息,二维码/条形码登录等功能。软件适用于android操作系统[6]2.3版本及以上,且实现了界面的自适应功能,软件还具有界面友好,操作便捷,易于维护等特点。

    参考文献:

    [1] Rick Rogers. Android应用开发[M]. 李耀亮,译.北京:人民邮电出版社,2010.

    [2] 杨丰盛. Android 应用开发揭秘[M]. 北京: 机械工业出版社, 2010.

    [3] 马建红. 基于Android平台的移动个人助手设计与实现[J].现代电子技术, 2012,35(2):25-27.

    [4] 余志龙, 陈昱勋, 郑名杰, 等. Android SDK开发范例大全[M]. 2版.北京: 人民邮电出版社, 2010: 14-20.

    [5] Mike ODocherty. 面向对象分析与设计(uml2.0版)[M]. 北京: 清华大学出版社, 2006: 214-243.

    [6] 李刚. 疯狂Android讲义[M]. 北京: 人电子工业出版社, 2012: 307.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建