项目需求,做一个类似微信扫描二维码,网页端登陆的功能实现。
利用开源项目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.扫描登入实现
扫描成功了,那么就先通知服务器端,扫描成功,页面也会即时展示出扫描成功,等待手机确认登录的信息
接下来,如果点确认登录,则通知服务器确认登录。
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/
来源:oschina
链接:https://my.oschina.net/u/270292/blog/107658