android QRCode

1.加载静态库和初始化 ImageScanner.

static {
		System.loadLibrary("iconv");
	}


// net.sourceforge.zbar.Config
		mImageScanner = new ImageScanner();
		mImageScanner.setConfig(0, Config.X_DENSITY, 3);
		mImageScanner.setConfig(0, Config.Y_DENSITY, 3);

 2.打开Camera设置previewcallback.

   

try {
			mCamera.setPreviewDisplay(mSurfaceHolder);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		mCamera.setPreviewCallback(previewCallback);
		mCamera.startPreview();

 3.定义previewcallback.

  

public Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {

		@Override
		public void onPreviewFrame(byte[] data, Camera camera) {
			// TODO Auto-generated method stub
			if (!isPass) {
				Camera.Parameters parameters = camera.getParameters();
				Size size = parameters.getPreviewSize();

				Image barcode = new Image(size.width, size.height, "Y800");
				barcode.setData(data);

				int result = mImageScanner.scanImage(barcode);

				if (result != 0) {
					String mDecodeQRCode = "";
					SymbolSet syms = mImageScanner.getResults();
					for (Symbol sym : syms) {
						mDecodeQRCode = sym.getData();
						Log.i("W", "HDMI_Decode--> " + mDecodeQRCode);
						Toast.makeText(MainActivity.this, "QRCode: " + mDecodeQRCode, Toast.LENGTH_SHORT).show();
						if (mDecodeQRCode != null && !isPass) {
							// if (mDecodeQRCode.equals(mCurQR)) {
							resetCamera();
							isPass = true;
							//playSound();
							// }
						}
						break;
					}
				}
			}
		}
	};

 

   程序需要用到Zbar.jar。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值