我使用 zxing 源代码作为库在我的应用程序中集成了二维码扫描功能。我的活动扩展了 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 扫描仪只扫描一次。如果返回的二维码错误,用户必须重新启动活动才能让扫描仪再次扫描。
如果结果代码错误,我尝试了类似的方法,但它不起作用。
Hanlder handler = new Handler();
handler.sendEmptyMessageDelayed(R.id.preview_id, CaptureActivity.BULK_MODE_SCAN_DELAY_MS