本文转载自严振杰的博客:http://blog.yanzhenjie.com
前言:
在写这篇文章之前已经写过两篇关于二维码功能的文章,有兴趣的可以看看——》文章1:Android开发之利用ZXing库实现二维码的扫描;文章2:Android开发之利用ZXing库实现二维码的生成,这两篇文章中使用到的二维码生成库是ZXing,在本篇文章中将要介绍的是使用另一个库——Zbar来实现二维码扫描功能,至于为什么会写这篇文章,我相信在两者使用对比之后你就会发现为什么了!!
步骤一:
因为Zbar不像ZXing一样是一个完整的库,Zbar在使用的时候需要我们去进行一些别的操作,比如编译。在这里Zbar官网上也可以下载到相应的so和jar包,但是呢so文件有限,有需要的就要自己重新编译,步骤如下:
首先在Zbar的开源主页下载Zbar源码:
https://github.com/ZBar/ZBar
顺便在开源主页点开android文件夹,发现编译Zbar需要libiconv,接下来下载libiconv:
http://www.gnu.org/software/libiconv
步骤二:Zbar和libiconv一起编译
libiconv编译完成了,接下来把Zbar和libiconv放到一起,编译出我们需要的so文件。
把刚才编译好的libiconv放入我们项目的jni文件夹。
解压刚才下载好的Zbar,首先把Zbar的头文件所在文件夹zbar/include放入我们项目的jni文件夹下。
把Zbar对java的接口文件zbarjni.c放入我们项目的jni文件夹,zbrjni.c在zbar/java文件夹下。
把Zbar的核心库文件所在的文件夹zbar/zbar放到我们项目的jni文件夹下。
把Zbar编译时需要的Android.mk、Applicaiton.mk、config.h从zbar\android\jni下拷贝到我们项目的jni文件夹下。
此时我们项目的jni文件夹是这样的:
步骤三:zbar的jar包
现在so文件有了,剩下的就是怎么调用so中的函数来识别条码/二维码了,首先把zbar/java下在net.sourceforge.zbar包和里边的java文件拷贝到你的项目的java目录下,大概结构如下:
到这里这个Zbar库基本上就搞定了,接下来就是怎么使用了,具体的使用步骤在严大的GitHub上也有demo,谢谢!