基于Android的二维码扫描系统设计与实现

时间:2022-09-28 10:59:45

基于Android的二维码扫描系统设计与实现

摘要:基于信息化水平的提高和二维码应用的飞速发展,本文对二维码的解码过程进行了讨论,并在Android系统上设计开发了一套二维码扫描系统。对基于智能手机的二维码扫描识别技术提供了思路和解决方案,具有一定的参考价值。

关键词:Android 二维码

中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2013)12-0151-01

1 引言

随着智能手机的普及和信息化水平的提高,二维码在我国已经为人们广泛的认识和接受,在美国和日本等发达国家,二维码被应用于物流、电子凭证及工业管理等诸多领域。可以说,二维码作为一种全新的信息存储、传递和识别技术,拥有广泛的发展前景。但怎样快速高效的解析出二维码数据是其中的关键点,本文着重讨论了二维码解析的核心步骤,并基于目前市场上占有率和使用率最高的Android系统,设计并开发了二维码扫描系统,具有一定的应用价值。

2 系统设计与实现

2.1 Android开发简介

Android是一种基于Linux的开放源代码的操作系统,主要使用于智能手机和平板电脑等移动设备上。Android系统采用分层的架构,分为应用程序层、应用程序框架层、系统运行库层和Linux内核层。Android开发中最基本的四大组件分为为Activity、Service服务、Content Provider内容提供者及Broadcast Receiver广播接收器。

2.2 二维码解码分析

二维码是用某种特定的几何图形按一定的规律在平面上分布的黑白相间的图形记录数据符号信息的。基于图像处理的二维码解码算法大体上分为五个步骤:图像预处理、定位与校正、读取数据、纠错以及译码。本系统设计时借助了Zxing开源类库,ZXing是Google提供的一个开源Java类库用于解析多种格式的1D/2D条形码,能够对QR、Data Matrix二维码以及条形码进行解码。在开发程序时,可以借助于Zxing里提供的类库,调用适当的模块或函数,开发出属于自己特定应用的二维码解码软件。

2.3 系统设计与实现

本系统基于Android系统设计并开发。首先新建立工程,并从Zxing官方网站下载最新的解码核心类库,导入到新建的工程文件中。

本系统主要函数类包括:CaptureActivity:主类,程序的入口;PreviewCallback:摄像头回调类;PlanarYUVLuminanceSource类:用于原始数据的转换;AutoFocusCallback:自动对焦。CameraManager:摄像头管理类,用于摄像头的打开和关闭;DecodeHandler:数据传输中枢;DecodeFormatManager:配置解码格式类;CaptureActivityHandler:用于解码成功与否的数据传输中介;ViewfinderView:扫描框。

本系统界面设计主要采用了Android布局文件中的Framelayout、Linearlayout组件,并自定义了ViewfinderView类用来布局扫码的扫描框。扫码界面设计思路是整个界面由外边半透明的部分和中间全透明部分组合而成,半透明部分由四个矩形组成,调用canvas.drawRect()函数绘制而成,canvas函数能够实现在界面上自由绘制自己想绘制的图形,其中中间的全透明部分也有四个矩形组成,只不过每个矩形都很窄,为两个像素宽,看着就像一条直线。整个界面如图2所示。

系统实施流程为首先启用CaptureActivity,用于启动摄像头CameraManager类对图像进行捕获,然后利用Capture Activity Handler类对图像进行解码处理,负责调用另外的线程进行解码,其次利用DecodeHander类对数据进行处理和传送,最后在handle Decode中得到并查看二维码中的原始数据。

二维码译码过程如图1所示,系统扫码界面及扫码结果如图2所示。

3 测试

根据实际需要,本系统选取了高低两款不同配置的智能手机进行测试工作。一款为低端配置的摩托罗拉ME525(800MHZ的TI OMA3610处理器、PowerVR SGX 530显卡和512MB RAM空间),另一款为高配置的三星galaxyS4(四核1.9GHz的高通骁龙600处理器、SGX544 MP3显卡和2GB RAM空间)。使用这两款机器对三种不同规格的二维码进行了50次测试,测试结果如表1所示。

从测试结果来看,本系统扫码时间和识别率均能达到较好水平。

4 结语

本文对二维码的解码进行了讨论,并基于Android系统设计并开发了一套扫码系统,良好的运行效果及测试结论证明了基于Android系统的二维码扫码系统的可行性及技术的成熟性,具有一定的应用价值。

参考文献

[1]曾健平,邵艳洁.Android系统架构及应用程序开发研究[J].微计算机信息,2011,27(9):1-3.

[2]贾裕.矩阵式二维条码生成技术的研究[J].2010.

[3]刘夏,陈明锐.二维码在企业的应用[J].计算机系统应用,2013,5:004.

[4]许统.手机二维码在国内的发展及应用[J].电脑与信息技术,2011,19(3):62-64.

[5]吕韬,张.基于android手机的加密QR二维码识别系统[J].2011.

上一篇:固定资产管理系统的应用与分析 下一篇:基于FPGA的医用干扰电治疗仪设计