Android微信扫描二维码登入实现 基于ZXing开源工程

一个人想着一个人 提交于 2019-11-30 06:50:36

项目需求,做一个类似微信扫描二维码,网页端登陆的功能实现。
利用开源项目ZXing来实现。ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。

ZXing主页:http://code.google.com/p/zxing/



1.Download
下载ZXing-2.1,解压后找到所需要的文件夹:core 和 android。core是核心库,android是在android平台下的二维码扫描实现源码

2.Build
在ZXing-2.1下面有不同平台实现方式的文件夹,每个下面都有一个名为build.xml的Ant编译文件。首先我们利用Ant工具和这个文件,将core编译成所需要的库。如果你没有Ant,可以去http://ant.apache.org下载(mac下默认已经安装)。编译很简单,直接cd到core目录,然后ant即可:

cd core
 ant
3.import

导入android工程,然后将编译好的core.lib 添加到工程中
我已经将我编译好的lib和Barcode Scanner 4.3.1工程放到github,可以直接下载运行

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

https://github.com/JeffreyZH/ZXingSimple

4.简化工程
Barcode Scanner 4.3.1的工程很丰满,如果单实现扫描二维码获取编码可以简化工程



我简化的工程demo ZXingSimple :https://github.com/jeffzhao/ZXingSimple 
去掉了本地数据库,分享,配置等功能,只保留了二维码扫描和生成功能。但还是建议看完整工程代码,很有帮助

5.扫描登入实现
扫描成功了,那么就先通知服务器端,扫描成功,页面也会即时展示出扫描成功,等待手机确认登录的信息
接下来,如果点确认登录,则通知服务器确认登录。

因此我们可能会有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/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!