Android微信掃描二維碼登入實現 基於ZXing開源工程

項目需求,作一個相似微信掃描二維碼,網頁端登錄的功能實現。
利用開源項目ZXing來實現。ZXing是一個開源Java類庫用於解析多種格式的1D/2D條形碼。目標是可以對QR編碼、Data Matrix、UPC的1D條形碼進行解碼。 其提供了多種平臺下的客戶端包括:J2ME、J2SE和Android。

ZXing主頁:http://code.google.com/p/zxing/ android



1.Download
下載ZXing-2.1,解壓後找到所須要的文件夾:core 和 android。core是核心庫,android是在android平臺下的二維碼掃描實現源碼 git

2.Build
在ZXing-2.1下面有不一樣平臺實現方式的文件夾,每一個下面都有一個名爲build.xml的Ant編譯文件。首先咱們利用Ant工具和這個文件,將core編譯成所須要的庫。若是你沒有Ant,能夠去http://ant.apache.org下載(mac下默認已經安裝)。編譯很簡單,直接cd到core目錄,而後ant便可:
github

cd core
 ant
3.import

導入android工程,而後將編譯好的core.lib 添加到工程中
我已經將我編譯好的lib和Barcode Scanner 4.3.1工程放到github,能夠直接下載運行
shell

Barcode Scanner 4.3.1: https://github.com/jeffzhao/ZXing-Android 數據庫

https://github.com/JeffreyZH/ZXingSimple apache

4.簡化工程
Barcode Scanner 4.3.1的工程很豐滿,若是單實現掃描二維碼獲取編碼能夠簡化工程 服務器



我簡化的工程demo ZXingSimple :https://github.com/jeffzhao/ZXingSimple 
去掉了本地數據庫,分享,配置等功能,只保留了二維碼掃描和生成功能。但仍是建議看完整工程代碼,頗有幫助 微信

5.掃描登入實現
掃描成功了,那麼就先通知服務器端,掃描成功,頁面也會即時展現出掃描成功,等待手機確認登陸的信息
接下來,若是點確認登陸,則通知服務器確認登陸。 session

所以咱們可能會有2個接口
private final static StringSCANNED_URL ="http://192.168.111.109:8000/scanned?";
privatefinalstatic StringCONFIRMLOGIN_URL ="http://192.168.111.109:8000/confirmed?";
一個是通知服務器已經成功掃描的http接口,一個是通知服務器確認登陸的接口。參數都是sessionID,也就是二維碼帶的信息,和用戶token。

參考文章:
主流手機二維碼PK——QR 與 DM :http://www.ancc.org.cn/news/article.aspx?id=3693
vCard 和 meCard 的區別:http://www.devicemedia.ca/blog/whats-the-difference-between-a-vcard-and-a-mecard/ 工具

相關文章
相關標籤/搜索