1. 程式人生 > >Android開發之Zbar實現二維碼掃描功能

Android開發之Zbar實現二維碼掃描功能

前言:
在寫這篇文章之前已經寫過兩篇關於二維碼功能的文章,有興趣的可以看看——》文章1:Android開發之利用ZXing庫實現二維碼的掃描;文章2:Android開發之利用ZXing庫實現二維碼的生成,這兩篇文章中使用到的二維碼生成庫是ZXing,在本篇文章中將要介紹的是使用另一個庫——Zbar來實現二維碼掃描功能,至於為什麼會寫這篇文章,我相信在兩者使用對比之後你就會發現為什麼了!!
步驟一:
因為Zbar不像ZXing一樣是一個完整的庫,Zbar在使用的時候需要我們去進行一些別的操作,比如編譯。在這裡Zbar官網上也可以下載到相應的so和jar包,但是呢so檔案有限,有需要的就要自己重新編譯,步驟如下:
首先在Zbar的開源主頁下載Zbar原始碼:

https://github.com/ZBar/ZBar

步驟二: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,謝謝!