Android平台二维码生成技术研究与应用

2016-11-18 03:01:33江翠婷
电子测试 2016年20期
关键词:条形码网址解码

于 营,江翠婷

(三亚学院,572022)

Android平台二维码生成技术研究与应用

于 营,江翠婷

(三亚学院,572022)

由于二维码能以图片的形式承载大量的信息,二维码生成技术目前在电子商务、票务系统等领域得到了广泛应用。本文以Android为平台,通过研究Android的摄像和绘图功能,利用二维码的编码和解码原理,对二维码的数据进行获取、解析和编码,实现对二维码的生成和识别两个功能模块,解决了二维码的生成和识别问题。

Android;二维码;编码;解码

近年来移动互联网和大数据的发展,条形码存数数据量小,无法满足当前的需要,为弥补条形码的不足,因此产生二维码,可在小正方形面积内表达大量的信息,以满足多样化的信息数据的需要。

本应用结合了二维码的广泛应用和Android智能手机的普及,实现了Android手机对二维码的生成和解析。

1 开发环境简介

本应用的设计主要分为两个大的模块:二维码的识别和二维码的生成。二维码的识别和生成是在Android平台上的开发的,并使用Eclipse 工具进行开发。其中,识别的功能要用到摄像头,虚拟机上面是没有摄像头的,这就需要有真机进行二维码的识别测试。

Android 平台开发使用的环境如下表所示:

表1-1 Android平台开发使用的环境

2 系统分析

对系统总体功能需求进行分析,做如下说明:

2.1 一个友好的欢迎界面。

2.2 功能的选择(生成功能、识别功能)。

2.3 二维码生成功能的实现。主要就是能够正确的生成客户需要的二维码,就是说能够正确无误的将用户的输入信息转换成二维码。经过分析,要实现最常用的功能,即网址、电话、文本、名片的生成。

2.4 二维码识别功能的实现。主要就是系统要能够识别二维码,并能够对二维码进行正确的解析。然后把所解析出来的信息以文字的信息输出来。

2.5 识别和生成的效率。如果识别和生成的时间过长,会对用户造成不好的体验,从而降低系统的可靠性。

3 关键技术

3.1 ZXing库:ZXing是一个Google提供的条码/二维码识别的开源Java类库,用Java实现的多种格式的1D/2D条码图像处理库,能够对QR、Data Matrix二维码以及条形码进行解码,它包含了联系到其他语言的端口。目前基本上和二维码打交道的东西,都会用到Zxing,可以实现使用手机的内置的摄像头完成条形码的扫描及解码。

ZXing库里面主要的类及其作用:

CaptureActivity:启动Activity ,也就是扫描器。

CaptureActivityHandler:解码处理类,负责调用另外的线程进行解码。

DecodeThread:解码的线程。

Com.google.zxing.client.android.camera:包,摄像头控制包。

ViewfinderView:用户自定义的View,就是我们看见拍摄框时的中间的框框。

3.2 连接组件的纽带(Intent):组件Activity 、Service和 Broadcast Receiver 都是由Intent异步消息激活的。Intent在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。通过Intent,程序向Android发出请求,Android 会根据请求的内容选择相应的组件来处理请求。

该应用主要用于两个界面之间的跳转,包括无参数的以及带有参数的。跳转需要在AndroidManifest.xml中声明两个activity。

3.3 函数库层(Libraries):Android包含了一套C/C++函数库,用以支持操作系统为应用程序提供的所有功能,主要包括Surface Manager、Media Framework、WebKit、SGL、Free Type、SQLite等。应用程序不能直接使用这些函数库,必须借助于应用框架组件和API间接地访问这些底层函数库的功能。

3.4 绘图功能的调用:在二维码的生成功能里面使用到了Android的绘图功能,是用相应的功能包将要转换的字符串转换成二维码字符串,对输出的二维数组进行解析,按照排码规范使用Android的绘图功能,将二维码绘出。

3.5 vCard(规范定义电子名片):电子名片的文件格式标准。它一般附加在电子邮件之后,但也可以用于其它场合(如在互联网上相互交换)。vCard可包含的信息有:姓名、地址资讯、电话号码、URL,logo,相片等。

3.6 摄像头操作:识别功能主要应用技术就是对摄像头的调用,能够使用摄像头来自动对焦,使用多线程来对摄像头捕获到的图像进行提交是关键的技术。

4 总体设计

图4-1 系统功能结构图

生成模块主要就是对二维码的生成与保存,如图4-1。二维码的生成主要是支持文本、电话、网址、名片的生成。当用户选择要生成的对象,把用户输入的信息送到后台,通过调用解析包,来生成相应信息的二维码。当用户选择保存二维码,将二维码生成对应的.png图像,保存到手机的SD卡中。

识别模块主要就是对二维码的识别。通过手机的摄像头对二维码或条形码进行扫描,把扫描到的二维码送到后台进行解析,如果解析成功后,就不再进行扫描,并将解析的数据通过对话框显示。若是网址可调用浏览器,若是电话可调用拨号器。

5 系统实现

生成模块主要有网址、电话、文本、名片四种选择。用户先进行选择生成的类型,跳转到该类型的界面,填写信息,若为空,提示不能为空。点击生成二维码,显示生成的二维码。点击保存二维码,将转换成.png格式,保存到sd卡指定路径。首先展示首页页面如图5-1、图5-2。

图5-1 模拟端的欢迎界面

图5-2 移动端的欢迎界面

图5-3 生成文本二维码

5.1 点击“文本”按钮,跳转到文本界面,在输入框输入“已经输入文本,点击“生成二维码”后,点击“保存二维码”即可保存,如图5-3所示。

5.2 点击“网址”按钮,跳转到网址界面,在输入框输入“http://www.baidu.com”后,点击“生成二维码”,点击“保存二维码”即可保存,如图5-4所示。

5.3 点击“电话”按钮,跳转到电话界面,在输入框输入“110”后,点击“生成二维码”,点击“保存二维码”即可保存,如图5-5所示。

5.4 点击“名片”按钮,跳转到名片界面,在输入框输入姓名、电话、邮箱等数据后,点击“生成二维码”,点击“保存二维码”即可保存,如图5-6所示。

图5-4 生成网址二维码

图5-5 生成电话二维码

图5-6 生成名片二维码

5.5 点击“扫一扫”按钮,跳转到扫描界面。将中间的全透明框对准要进行识别的二维码,若识别成功,则会弹出对话框显示扫描结果。点击“取消”,返回欢迎界面。若是网址或电话,可点击“确定”,打开浏览器或拨号器。

[1]蔡艳桃. Android App Inventor项目开发教程[M]. 北京: 人民邮电出版社,2014

[2]王森. 拨云见日:基于android的内核与系统架构源码分析[M]. 北京:清华大学出版社,2015

[3]中国物品编码中心. QR Code二维码技术与应用[M]. 北京:中国标准出版社,2012

Research and Utilization of QR Code Generation Based on Android Platform

Yu Ying,Jiang Cuiting
(Sanya University,572022)

Because the qr code carries large amounts of information as the form of pictures,the qr code generation technology is widely used in the field of e-commerce,ticketing system,and so on.In this paper,we study the imaging and drawing function of Android,acquire,analysis and encode the data in the qr code based on the encoding and decoding principle of qr code in Android platform,realize two modules of the qr code generation and recognition,and solve the problem of qr code generation and recognition.

Android;QR Code;Encoding;Decoding

(三亚市科技工业信息化局项目“基于本体论的数据挖掘技术在旅游网评论情感分析中的应用研究” 2015YD49)

猜你喜欢
条形码网址解码
2023年6月全宅影音器材编辑推荐
《解码万吨站》
本刊网址变更通知
创意条形码
解码eUCP2.0
中国外汇(2019年19期)2019-11-26 00:57:32
从条形码到二维码
从条形码到二维码
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
条形码大变身