学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 管理学论文 > 设备管理论文

学校设备管理系统Android客户端功能的开发(2)

来源:学术堂 作者:朱老师
发布于:2016-09-24 共4886字
Android客户端[3]要通过扫描设备的二维码,可以和Web进行建立通信,web端利用Web Socket协议实现了浏览器与服务器全双工通信(full-duplex)。在Web Socket API中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。利用Web Socket协议,可以使得服务器主动向客户端传送数据,实现了服务器推送技术,通过过程如图6所示。
  
  二维码登录通信过程
  
  整个的操作的过程,步骤如下:
  
  1)首先浏览器请求服务器生成登录UUID以及生成登录二维码图片(使用UUID为了防止多用户时冲突)。
  
  2)服务器处理请求后,向浏览器返回UUID和登录二维码图片。
  
  3)浏览器接收到所返回的数据,处理后与服务器建一个Web Socket双向通讯通道,以便后续数据通讯。
  
  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客户端的版本(即Barcode Scanner)、Android的集成(通过Intent支持和Bar-code Scanner的集成)等功能。
  
  1)扫描界面开发
  
  通过点击图3“主界面”右上角二维码图标或者发现中扫一扫,如发送一个Intent对象[4]可以启动扫描界面Capture Activi-ty.而原有扫描界面(提供普通横屏的扫描界面)不能满足我们的需求,因此对Zxing库改写。在本客户端中,对Zxing的扫描框Viewfinder View进行了修改,效果类似微信扫一扫,界面如图7所示,主要利用画笔绘画出扫描框边上的8个绿色矩形,然后绘画出扫描的区域。
  
  扫一扫界面
  
  2)扫描二维码/条形码检索设备详情
  
  Web端通过Qrcode Handler类对设备以SN码和编号组合生成二维码,设置二维码的编码格式(hints.put(Encode Hint Type.ERROR_CORRECTION, Error Correction Level.M))、二维码的纠错 率(hints.put(Encode Hint Type.ERROR_CORRECTION, Error-Correction Level.M))以及二维码的颜色等等。
  
  而手机客户端通过启动Capture Activity,并扫描相应的二维码或设备条形码获取二维码信息。其中,解析二维码或设备条形码会调用handle Decode方法,相关代码如下:
  
  public void handle Decode(Result result, Bitmap barcode) {
  inactivity Timer.on Activity(); play Beep Sound And Vibrate();
  String result String = result.get Text();
  if (result String.equals(“”)) {
  Toast.make Text(Capture Activity.this, “Scan failed!”,
  Toast.LENGTH_SHORT)。show();
  } else {Intent result Intent = new Intent();
  Bundle bundle = new Bundle(); bundle.put String
  (“result”, result String);
  result Intent.put Extras(bundle); }Capture Activity.
  this.finish();}
  
  然后,客户端得到二维码信息后会通过Http Util工具类向Equipment CRUDController控制器发出获取设备信息请求,控制器接收请求处理并返回数据,最后客户端调用Json Util类解析数据展现给用户。检索到符合要求的设备界面如图8所示。
  
   检索设备详细信息
  
  3)扫描二维码登录模块的实现
  
  Web端扫描二维码登录系统主要利用Web Socket协议[5]实现了浏览器与服务器全双工通信,以及手机客户端配合。服务端Web Socket主要通过Qrcode Login WS类进行实现。
  
  @On Message
  public void on Message(String uuid, Session session) {
  session.get User Properties()。put(“time”,
  System.current Time Millis());//绑定当前时间(毫秒),以判断过期
  WSSessions.put(uuid, session);//将uuid与Web Socket Session绑定}
  
  其中@Server Endpoint注解是一个类层次的注解,它主要是将目前的类定义成一个websocket服务器端,注解的值将被用于监听用户连接的终端访问URL地址;而@On Open和@On-Close注解定义了一个新用户连接和断开的时候所调用的方法;@On Messag注解定义了当服务器接收到客户端发送的消息时所调用的方法。需注意从javax.websocket包中引入了一些相应类。
  
  浏览器连接服务端Web Socket模块开发
  
  首先在Javascript中判断浏览器是否支持Web Socket,若不支持,将给用户提示;其次利用Javascript创建一个Web Socket对象,并且定义向服务器发送消息send方法和接受服务器发来消息on Message方法,相关代码如下:
  
  window.Web Socket = window.Web Socket || window.Moz Web-
  Socket;
  if(window.Web Socket){
  web Socket = new Web Socket(“ws://127.0.0.1:8080/ems/qr-
  code Login”);
  }else{
  window.alert(“抱歉,您的浏览器不支持Web Socket协议,
  请您浏览器升级再使用该功能!”);}
  
  以上代码中,window.Web Socket与window.Moz Web Socket是获取当前浏览器是否支持Web Socket的值,其值为布尔类型。
  
  通过服务器与浏览器Web Socket搭建并建立连接,我们可以使用手机客户端扫描登录二维码,进行快速登录系统。手机客户端扫描登录二维码,Web端接收到通知后并提示用户,如图9所示。手机客户端扫描登录二维码后,进入登录授权界面,如图10所示。
  
  Web端二维码登录界面
  
  客户端登录授权界面
  
  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 O'Docherty.面向对象分析与设计(uml2.0版)[M].北京:清华大学出版社, 2006: 214-243.
  [6]李刚。疯狂Android讲义[M].北京:人电子工业出版社,2012: 307.
相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站