使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描(转)
来源:互联网 发布:js获取div的id内容 编辑:程序博客网 时间:2024/05/18 03:18
使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描
zxing是一个条形码和二维码生成及识别的java开源组件,QRcode的中文名字是:QR快速响应矩阵码。
1.下载zxing最新的包
到zxing的主页: http://code.google.com/p/zxing/
下载 http://zxing.googlecode.com/files/ZXing-1.6.zip
http://zxing.googlecode.com/files/BarcodeScanner3.52.apk
来源:http://code.google.com/p/zxing/downloads/list
其中BarcodeScanner3.5.2.apk是安装在Android操作系统的手机上的条码扫描器安装包。
条码扫描器的j2me版本下载地址为:
http://zxing.org/w/BarcodeReader.jad
http://zxing.org/w/BarcodeReader.jar
解压为:
D:\Java\zxing-1.6
在dos窗口下进入到:D:\Java\zxing-1.6\core,然后运行ant命令进行编译
(必须先安装配置了ant。
ant最新版的下载地址为:http://ant.apache.org/bindownload.cgi
下载解压后在系统的环境变量中配置ANT_HOME:例如:ANT_HOME=D:\Java\apache-ant-1.7.0;
Path中必须有ant的bin目录,例如:
Path=D:\Java\jdk1.6.0_21\bin;D:\Java\apache-maven-2.0.9\bin;D:\Perl\site\bin;D:\
Perl\bin;D:\Java\apache-ant-1.7.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\
System32\Wbem;D:\Programs\svn-win32-1.5.4\bin;C:\Program Files\TortoiseSVN\bin;C
:\Program Files\QuickTime\QTSystem\
)
编译结果如下:
D:\Java\zxing-1.6\core>ant
Buildfile: build.xml
clean:
build:
init:
compile:
[mkdir] Created dir: D:\Java\zxing-1.6\core\build
[javac] Compiling 171 source files to D:\Java\zxing-1.6\core\build
[jar] Building jar: D:\Java\zxing-1.6\core\core.jar
BUILD SUCCESSFUL
Total time: 6 seconds
编译之后得到core.jar这个包。
再进入D:\Java\zxing-1.6\javase目录使用ant进行编译,编译结果如下:
D:\Java\zxing-1.6\javase>ant
Buildfile: build.xml
init:
build:
[mkdir] Created dir: D:\Java\zxing-1.6\javase\build
[javac] Compiling 6 source files to D:\Java\zxing-1.6\javase\build
[jar] Building jar: D:\Java\zxing-1.6\javase\javase.jar
BUILD SUCCESSFUL
Total time: 1 second
编译之后得到javase.jar这个包。
在Eclipse里新建Java工程:
编写java代码如下:
package com.lizongbo.qrcode;import java.awt.image.BufferedImage;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.Hashtable;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;public class QRCodeGen {private static final int BLACK = 0xFF000000;private static final int WHITE = 0xFFFFFFFF;/*** @param args* @throws WriterException* @throws IOException*/public static void main(String[] args) throws WriterException, IOException {String picFormat = “png”;StringBuilder sb = new StringBuilder(1024);java.io.InputStreamReader fr = new InputStreamReader(new FileInputStream(“d:\\quickli.vcf”), “GBK”);BufferedReader br = new BufferedReader(fr);String line = null;while ((line = br.readLine()) != null) {sb.append(line).append(“\r\n”);}String str = sb.toString();// 二维码内容System.out.println(str.length() + “|str==” + str);str = new String(str.getBytes(“GBK”), “ISO-8859-1″);String path = “d:/lzb”;Hashtable hints = new Hashtable();// hints.put(EncodeHintType.CHARACTER_SET, “GBK”);BitMatrix bitMatrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, 400, 400, hints);/*** begin 这段代码等同于就是 MatrixToImageWriter.writeToFile(bitMatrix, picFormat,* file); * 直接这样写就不用引用javase.jar*/int width = bitMatrix.getWidth();int height = bitMatrix.getHeight();BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);for (int x = 0; x < width; x++) {for (int y = 0; y < height; y++) {image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);}}File file = new File(path + “.” + picFormat);ImageIO.write(image, picFormat, file);/*** end 这段代码等同于就是 MatrixToImageWriter.writeToFile(bitMatrix, picFormat,* file);*/MatrixToImageWriter.writeToFile(bitMatrix, picFormat, file);}}
网址的QRcode生成如果不想编写代码,可以使用现成的google的api:
http://chart.apis.google.com/chart?chs=150×150&cht=qr&chl=http://zxing.googlecode.com/files/BarcodeScanner3.5.2.apk&chld=L|1&choe=UTF-8
Vcard也可以生成QRcode:
参考:http://blog.yslifes.com/archives/686
在线对二维码进行解码的url: http://zxing.org/w/decode.jspx
在Webview中通过js也可以调用条形码扫描,
封装的java代码如下:
final class BarCodeUtilHandler {public void tryGetBarCode() {Intent intent = new Intent(“com.google.zxing.client.android.SCAN”);// intent.putExtra(“SCAN_MODE”, “QR_CODE_MODE”);startActivityForResult(intent, 0);}};@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent intent) {Log.v(TAG, “onActivityResult===” + requestCode + “,” + resultCode + “,”+ intent);if (requestCode == 0) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra(“SCAN_RESULT”);String format = intent.getStringExtra(“SCAN_RESULT_FORMAT”);webview.loadUrl(“javascript:showBarCode(\’” + format + “|”+ contents + “\’)”);} else if (resultCode == RESULT_CANCELED) {webview.loadUrl(“javascript:showBarCode(\’没有找到条码!\’)”);}}}
源:
http://618119.com/tag/qrcode
- 使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描(转)
- 使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描
- 在Android中使用 Google ZXing 实现二维码、条形码扫描
- 在Android中使用 Google ZXing 实现二维码、条形码扫描
- Zxing二维码、条形码扫描/生成
- Android基于Zxing实现二维码,条形码扫描和生成二维码
- 使用ZXing生成QRcode二维码
- iOS 条形码 二维码 的生成 和 扫描 zBarSDK zXing
- 在Android上使用ZXing识别条形码/二维码(转)
- 在Android上使用ZXing识别条形码/二维码(转)
- ZXing二维码、条形码生成和扫描
- Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码
- 【android】二维码、条形码扫描——使用Google ZXing
- Android 使用Zxing实现二维码的生成,扫描
- Android 使用Zxing实现二维码的生成,扫描
- Android 使用Zxing实现二维码的生成,扫描
- Android 使用Zxing实现二维码的生成,扫描
- Android ZXing 二维码、条形码扫描介绍
- 黑马程序员——冒泡排序、方法、参数、返回值
- QR编码设置基础概念(zxing 和 d_project qrcode)
- tftp 服务的配置和启动
- 在线生成HTML5 apps工具
- 面向对象设计原则之依赖倒转原则
- 使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描(转)
- freemarker 使用spring security标签进行权限判断以及错误解决
- 关于d-project(qrcode)中文生成二维码乱码
- eclipse android开发相关软件下载
- Puma framework 1.0 beta, 基于sping mvc、spring security、spring data、hibernate搭建的开发框架(供学习用)
- Voice API for mobile 移动应用开发可用的API
- 调出系统托盘中的qq
- 【c/c++】解决 /lib/libc.so.6: version `GLIBC_2.11′ not found
- C/I 载干比 C/A邻频率干扰保护比