我不认为 zxing 中没有“批量模式”的概念。
您当然可以在自己的应用程序中使用 zxing 来实现您正在寻找的行为。使用您在问题中已有的代码第一次启动扫描。将此声明添加到您的班级:
ArrayList<String> results;
然后在开始扫描之前将其添加到 onCreate中以对其进行初始化:
results = new ArrayList<String>();
在 onActivityResult() 中,您可以将当前结果添加到 ArrayList 中,然后开始下一次扫描。
/*Here is where we come back after the Barcode Scanner is done*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
// contents contains whatever the code was
String contents = intent.getStringExtra("SCAN_RESULT");
// Format contains the type of code i.e. UPC, EAN, QRCode etc...
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan. In this example add contents to ArrayList
results.add(contents);
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_FORMATS", "PRODUCT_MODE,CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF");
startActivityForResult(intent, 0); // start the next scan
} else if (resultCode == RESULT_CANCELED) {
// User hass pressed 'back' instead of scanning. They are done.
saveToCSV(results);
//do whatever else you want.
}
}
}
将它们保存到 CSV 文件超出了这个特定问题的范围,但是如果您环顾四周,您可以找到如何执行此操作的示例。把它留空作为一个练习供你学习。