陈三清 殷鹏
摘要;随着当前移动互联网技术的发展和手机的日趋普及,很多传统的应用被开发出来运用到手机上;该文针对传统点名方式的不足设计出一款点名软件,实现多途径的手机点名,该文首先简介了实现Android手机点名的蓝牙技术和二维码技术,接着阐述了点名系统的总体架构、APP功能设计及界面设计问题,最后重点讨论了蓝牙签到和扫码签到的程序编程实现。
关键词:Android;蓝牙;二维码;手机点名;签到
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)07-0095-04
点名作为一种考勤方法,常用于高校课程教学过程中,用来考查学生到课情况,掌控课程纪律,促进学生主动积极到课学习。点名的方式有传统纸质点名的,也有使用指纹技术实现的、多媒体投影技术实现的等多种方式,这些方法各有优点,也有明显的缺点,都很难同时满足资金、效率、易用性等多方面的要求。随着移动互联网技术的发展和手机的日趋普及,当前很多传统的应用被开发出来运用到手机上,手机上的各种应用也是层出不穷,基于蓝牙技术或二维码技术的手机应用也逐渐多了起来,也出现了基于Android手机的点名软件;由于蓝牙和二维码扫码几乎是当前所有智能手机必备的基本功能,而蓝牙的使用和二维码的扫描都非常简单,结合这两者的技术优势,使用Java应用开发技术,本文设计并实现了一款综合功能软件,提供多途径点名方式,力图解决传统点名方法中存在的问题,实现简单快捷的点名,提高课堂教学效率。
1关键技术简介
1.1蓝牙技术
蓝牙(Bluetooth)是一种支持设备短距离(一般10m内)通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及一点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,其数据速率为1Mbps。蓝牙采用时分双工传输方案实现全双工传输。自从爱立信公司2001年8月推出第一款内置蓝牙手机索尼爱立信T39mc以后,蓝牙功能几乎是所有智能手机标准配置之一。
蓝牙适配器就是各种数码产品能适用蓝牙设备的接口转换器,它采用了全球通用的短距离无线连接技术。利用蓝牙技术,能够有效的简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网之间的通信,从而数据传输变得更加迅速高效,为无效通信扩宽道路。
利用蓝牙技术进行应用开发时用到的Java包主要是an-droi&bluetooth,它提供主要类包括蓝牙适配器类BluetoothA-dapter、蓝牙装置类BluetoothDevice、蓝牙管理类Bluetooth-Manager、蓝牙服务器端类BluetoothServerSocket、蓝牙客户端类BluetoothSocket等,通过调用这些类包中的方法可以快速設计基于蓝牙技术的各种应用。
要在Android应用程序中使用蓝牙特性,必须声明两个蓝牙权限;
1.2二维码技术
二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。
二维码的名称是相对于一维码来说的,比如以前的条形码就是一个“一维码”,它的优点有:二维码存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高等。
QR(Quick-Response)code是被广泛使用的一种二维码,解码速度快。ZXing是Google提供的一个开源Java类库用于解析多种格式的条形1D/2D条形码,能够对QR、DataMatrix二维码以及条形码进行解码。由于二维码生成和解码过程实际是一个非常复杂过程,如果每一个开发者都要自己编写所有的过程的话,将十分费时和花费精力,因此目前基于二维码的应用开发一般都会用到Zxing类库,ZXing类库包含了应用开发所需编码、解码的模块和函数,在开发程序时可以借助ZX-ing提供的类库,调用这些模块或函数,可以大大降低开发过程的复杂性,快速的开发出属于自己特定应用的二维码解码软件。
2点名软件总体设计
2.1总体设计概述
本系统基于客户端—服务器架构设计(如图1),分为服务端和客户端程序,分别采用不同的技术实现,客户端程序通过网络与服务器进行交互和数据通信。
服务器端:主要用来存储学生信息、班级信息、课程信息等,以及完成与客户端的数据交互,包括登录验证、数据请求、数据传送及数据保存;服务器端采用PHP+MySQL+Tomcat方式实现,PHP作为后台开发语言,MySQL用来存储数据,Tomcat服务器用来响应客户端的服务请求及返回客户端所需的数据。
Android客户端:是设计的重心,用来实现系统的各项功能,采用Android Studio+Java的方式开发,Android Studio是Google公司力推的开发环境,具有智能化、集成度高、使用简单高效的特点,使用Android Studio代替eclipse开发环境是An-droid应用开发的必然发展趋势。
2.2APP端功能模块设计
根据实际使用需要和设计要求,App端总体功能模块划分如下:
APP端可以两种类型的账号登录,教师账号和学生账号,不同账号显示不同的界面。以教师帐号登录系统,如下图3所示,系统主要包括四种功能;
1)常规点名:将传统的纸质点名方式通过Android的控件模拟,实现通常的“正常”、“迟到”、“旷课”、“请假”等情况;
2)蓝牙点名;开启蓝牙设备,扫描;周围的手机设备,将扫描到的设备记录下来,记录到服务器,完成快速点名。
3)扫描点名:教师帐号登录成功后生成课程的二維码,学生帐号登录程序后扫描二维码,就可以自动签到。
4)签到统计:可以按不同的学期,统计某一门课程所有学生的出勤情况。
以学生帐号登录系统,如下图4所示,系统主要包括两种功能;
1)扫码签到:扫描教师端课程二维码,自动完成签到。
2)签到统计:可以按课程查询自己的出勤情况,包括旷课、迟到、请假等次数情况。
3系统实现
3.1蓝牙签到实现
用户以教师帐号登录系统,进入主界面(图3)后,点击“蓝牙签到”进入蓝牙签到的主界面(图5)。
然后就可以开始点名,使用流程如下;
1)通过“设置”按钮开启蓝牙功能,并使手机对附近所有的蓝牙设备可见;
2)点击“开始搜索”按钮开启蓝牙扫描,扫描附件蓝牙设备;
3)扫描结束后,通过“签到”按钮,选择课程(如图6),经过与数据库中的记录比对成功后,将名单写入数据库,一次性完成点名操作。
具体实现时,需首先获取蓝牙设置适配器,
BluetoothAdapter bluetoothAdapter—BluetoothAdapter.getDe{aultAdapter();
接着使用以下语句调用系统设置界面,开启蓝牙,使手机对附近所有的蓝牙设备可见:
startActivity{new Intent(Settings.ACTION_BLUE-TOOTH_SETTINGS)};
然后设置搜索按钮的监听事件,开启蓝牙扫描,搜索附件的设备:
由于搜索的蓝牙设备不断出现,设备列表需要不断更新,故需要设置广播监听,当有设备出现时,将设备添加到设备列表中:
要实现此功能,需在Activity中的onStart()方法中,注册广播接收器:
如图所示,当点击“签到”按钮时,可以根据当前课程,将当前设备名称与班级名单匹配后,再写入到服务器中,完整自动点名,实现如下:
3.2二维码签到实现
二维码扫码签到需首先以教师帐号登录,进入用户主界面后,点击“二维码生成”,可选择不同课程(图7),生成不同的二维码(如图8):
要实现生成二维码,首先需在项目工程中导入二维码架包Zxing,然后调用架包中的方法生成二维码,使用非常简单;
其中,QRUtils.eneodeToQRWidth()方法使用指定宽度生成一张Bitmap类型的图片,也即是二维码。
第二步,学生以学生帐号登录,点击图中的“扫描签到”,对准第一步中二维码图片开始扫码,就可以很快完成签到(如图9),如下:
此ScanBasicActivity是一个实现扫码的基本功能框架,handlescanData()是抽象方法,可以根据实际应用需要,再实现其具体方法。
第二步,需要实现CameraBarcodeScan类的Camerascan-CallBack回调方法,初始化CameraBarcoclescan对象,使其随Activity生命周期状态的变化而变化。ScanActivity继承Scan-BasicActivity并重写getCameraScanData()方法。
ScanActivity.java是实现扫描的主要过程,需重写Activi-ty的生命周期中的函数,在其中实现CameraBarcodeScan对象使用状态变化。getCameraScanData(String data)是回调方法,data是返回给用户处理的字符串,在这里就是扫码后获得的二维码结果。
最后一步是handleScanData()方法的实现问题,因为生成的二维码是"id:"+"课程ID"的形式,因而扫码的结果是获得了一个指定形式的字符串,如;“id:01”,由于课程编号是唯一的,通过查询课程编号可以获取班级学生名单;再在学生名单中查询指定帐号,如果存在与指定登录号匹配的帐号,就可在相应的课程记录上标记签到成功。
4结束语
课堂点名是高校教学中一个必不可少的环节,简化传统点名过程,凸显教学主体地位,本文根据实际情况设计了一款集常规点名、蓝牙点名和扫描签到三种点名方式于一体的手机软件,可在Android手机上利用蓝牙技术、二维码技术实现简单快捷的点名签到,在手机日益普及的当今,这给高校教师提供了一种全新的点名方式,也将极大的提高点名效率,同时师生也可及时地了解课程签到信息。由于蓝牙技术和二维码技术是当前移动应用开发中比较前沿的技术,而本项目研究应用了这一最新技术,因而本项目具有一定的创新性,在高校中具有潜在的应用前景。