自从微信的扫一扫功能之后,条形码、二维码的使用场景急速拓展,扫码功能基本成为移动端App的标配,其重要性不言而语,所以在自己的项目中集成扫码功能很有必要。
条形码、二维码使用场景
- 信息获取(名片、地图、WIFI密码、资料)
- 网站跳转(跳转到微博、手机网站、网站)
- 广告推送(用户扫码,直接浏览商家推送的视频、音频广告)
- 手机电商(用户扫码、手机直接购物下单)
- 防伪溯源(用户扫码、即可查看生产地;同时可以获取最终消费地)
- 优惠促销(用户扫码,下载电子优惠券,抽奖)
- 手机支付(扫描商品二维码,通过银行或第三方支付提供的手机端通道完成支付
- 登陆管理(不需输入账户,密码,扫码登陆)
本篇文章主要围绕ZXing简介,在Android Studio(以下简称 AS)中部署两个方面展开。
一、ZXing简介
ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。
因为ZXing的项目是非常庞大的,功能也非常多,但是在android平台开发中我们只需要上图圈红三个文件夹下的内容。
- android-core和core是需要的类库
- android是ZXing提供的条码扫描器客户端源码
二、在Android Studio中部署
-
首先从GitHub上下载源码到本地。
</br>
- AS中导入ZXing客户端源码
</br>File--New--Import Project,然后选择下载源文件中的android目录,点击OK。
</br>
- 导入android-core和core类库
</br>当前项目是不能运行的,因为缺少android-core和core类库,所以要把这两个类库导入到项目中。这里采用module依赖的方式,在项目中新建Android Library类型的module,将类库源码放到此module中供主module依赖。
新建Android Library类型的module,File--New--New Module,选择Android Library
</br>
点击下一步,填入Application/Library name和Module name,Package name填com.google.zxing(客户端源码中引用这些类时的包名,现在填一样,省得后面再改)
</br>
新建好项目目录会多一个名为zxinglib的module,其结构如下图
</br>
将源码中,core\src\main\java\com\google\zxing路径下的所有文件复制到zxinglibmodule的src\main\java\com.google.zxing包下。
</br>
源码中,android-core\src\main\java\com\google\zxing\client\android\camera中只有一个类文件CameraConfigurationUtils.java,不需要单独在建一个Android Library类型的module供依赖,直接将CameraConfigurationUtils.java文件复制到zxinglibmodule的src\main\java\com.google.zxing包下即可。
</br>
类库文件已经导入到项目,但是尚未设置主Module对zxinglib的依赖,打开主module下的build.gradle文件,在dependencies中添加如下一行代码。
</br><pre><code>
compile project(':zxinglib')
</code></pre> - 至此源码中的条码扫描器客户端源码、类文件均导入至项目中,并建立起了条码扫描器客户端源码主module对类文件Application/Library name和**Module 的依赖。项目已经可以安装到手机运行了。效果如下图。
</br>
三、总结
本篇文章对ZXing开源库做了简单介绍,完成了源码中条码扫描器客户端源码和相关类文件在Android Studio中的部署,使其能够在android平台手机上运行。
至于ZXing开源库与现有项目的集成和ZXing的使用方法,会在后续的文章中与大家分享。