我已经实现了一些斑马线 (zxing) 代码,试图创建一个扫描某些条形码的 Android 应用程序。真的很基本的东西。以下是我的代码的基本原理:
public void recognizeQRClick(View view) {
printingNewQR = false;
recognizingQR = true;
text1.setText("Recognize QR button clicked");
IntentIntegrator intentIntegrator = new IntentIntegrator(this);
intentIntegrator.initiateScan();
return;
}
@Override
public void onActivityResult (int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case IntentIntegrator.REQUEST_CODE:
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
String contents = scanResult.getContents();
if(printingNewQR) {
return;
} else if(recognizingQR){
displayQRInfo(contents);
}
text1.setText(contents);
}
break;
}
}
问题是,虽然扫描部分似乎可以工作(当点击相应的按钮时,应用程序会跳转到扫描屏幕,并且当条码居中时,中心会出现一个小金点,表示扫描良好)它永远不会完成。该应用程序仅保留在扫描屏幕中,一遍又一遍地扫描相同的条形码。我已经广泛地搜索了这个问题,并在几个实例中发现了类似的问题,但是一旦他们使用了我正在做的 IntentIntegrator 类,他们的问题似乎总是得到解决。怎么了?