集成zxing和按需扫描

时间:2013-05-15 08:20:21

标签: android zxing

我使用zxing源代码作为在我的应用中集成了qr代码扫描功能。我的活动扩展了Capture Activity并覆盖了Capture Activity类的handleDecode方法。 我在覆盖方法handleDecode中的代码看起来像这样:

@Override
public void handleDecode(Result rawResult, Bitmap barcode){
String result = rawResult.getText();
if(result==WRONG_CODE){
      //do nothing
}else if(result==RIGHT_CODE){
      //do something
   }
}

这个想法非常简单。如果用户扫描正确的代码然后执行某些操作,否则请继续扫描,直到获得正确的代码。然而,问题是zxing扫描仪只扫描一次。如果返回的qr代码错误,用户必须重新启动活动才能让扫描仪再次扫描。

如果结果代码错误但是它不起作用,我尝试了类似的东西。

Hanlder handler = new Handler();
handler.sendEmptyMessageDelayed(R.id.preview_id, CaptureActivity.BULK_MODE_SCAN_DELAY_MS

2 个答案:

答案 0 :(得分:0)

我今天遇到了这个问题,但是在执行sendEmptyMessageDelayed时,通过调用getHandler()而不是创建新的处理程序来解决它。老问题,所以我想这根本不会对你有所帮助,但对于那些有同样问题的人来说......好吧,这就是解决方案:

   @Override 
   public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor) {    
        Toast.makeText(this.getApplicationContext(), "Scanned code " + rawResult.getText(), Toast.LENGTH_LONG).show();      
        getHandler().sendEmptyMessageDelayed(R.id.restart_preview, 1000L);
    }

答案 1 :(得分:0)

new Handler()

getHandler()

CaptureActivity中,应该有一个CaptureActivityHandler。使用该处理程序发送消息。