二维码扫描重复扫描实现之handler延时实现

二维码扫描集成Zxing后,无法实现重复扫描功能,试了几种方法,最后发现在扫描失败后用handler发送一个delay方法,重启camera就能实现

详见代码

//重新开始扫描
	private void restartCarema() {
		handler.postDelayed(new Runnable() {
			@Override
			public void run() {
				if (handler != null) {
					handler.quitSynchronously();
					handler = null;
				}
				CameraManager.get().closeDriver();
				SurfaceView surfaceView = (SurfaceView) findViewById(R.id.capture_preview);
				SurfaceHolder surfaceHolder = surfaceView.getHolder();
				initCamera(surfaceHolder);
			}
		},2000);

	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android Studio中扫描二维码,首先需要安装一个名为“QRCodeReaderView”的库。在build.gradle文件中添加以下代码,在dependencies中添加 QRCodeReaderView作为一个库的依赖项。 ``` dependencies { compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.3' } ``` 然后,在Activity中添加以下代码: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Find the QRCodeReaderView mQRCodeReaderView = (QRCodeReaderView) findViewById(R.id.qrdecoderview); // Use the builder to create Configuration object QRCodeReaderView.getConfig().setAutoFocusInterval(1000L); // Set the Configuration object mQRCodeReaderView.setQRDecodingEnabled(true); // Start camera preview mQRCodeReaderView.startCamera(); // Set result handler mQRCodeReaderView.setResultHandler(this); } ``` 通过上述代码,首先会在Activity中找到QRCodeReaderView,然后通过QRCodeReaderView.getConfig()方法创建一个Configuration对象,并设置自动对焦的时间间隔,接着设置QR解码启用并开始相机预览。最后,通过mQRCodeReaderView.setResultHandler()为QR码扫描器设置了一个结果处理器。 最后,在Activity中实现“onResume()”和“onPause()”方法,并在这些方法中添加以下代码即可: ```java @Override public void onResume() { super.onResume(); mQRCodeReaderView.startCamera(); } @Override public void onPause() { super.onPause(); mQRCodeReaderView.stopCamera(); } ``` 通过上述代码,当Activity恢复时,开启相机视图并启动相机扫描,当Activity暂停时,将停止相机扫描

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值