Single & Multiple Barcode Scanning
This article explains how to switch between single-barcode scanning mode and multi-barcode scanning mode.
Configure Expected Barcodes Count
expectedBarcodesCount= 1: Scan a single barcode.expectedBarcodesCount= 0: Allows the library to return more than one result, but it does not aggressively optimize for decoding multiple barcodes.expectedBarcodesCount= 999 or any other number: Makes every effort to decode up to the specified number of barcodes, when possible.
- Java
- Kotlin
CaptureVisionRouter mRouter; mRouter = new CaptureVisionRouter(); try { SimplifiedCaptureVisionSettings simplifiedCaptureVisionSettings = mRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES); SimplifiedBarcodeReaderSettings simplifiedBarcodeReaderSettings = simplifiedCaptureVisionSettings.barcodeSettings; simplifiedBarcodeReaderSettings.expectedBarcodesCount = 1; mRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, simplifiedCaptureVisionSettings); } catch (CaptureVisionRouterException e) { throw new RuntimeException(e); }val mRouter: CaptureVisionRouter? = CaptureVisionRouter() try { val simplifiedCaptureVisionSettings = mRouter?.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES) val simplifiedBarcodeReaderSettings = simplifiedCaptureVisionSettings?.barcodeSettings simplifiedBarcodeReaderSettings.expectedBarcodesCount = 1 mRouter?.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, simplifiedCaptureVisionSettings) } catch (e: CaptureVisionRouterException) { throw RuntimeException(e) }
Related APIs
Improve Multi-Scan Stability
Use max overlapping feature of multi-frame cross filter to improve the stability of multi-barcode scanning.
- Java
- Kotlin
CaptureVisionRouter mRouter = new CaptureVisionRouter(); MultiFrameResultCrossFilter filter = new MultiFrameResultCrossFilter(); // Default value of MaxOverlapingFrames is 5. Increase the number if you want to further improve the stability. filter.setMaxOverlappingFrames(EnumCapturedResultItemType.CRIT_BARCODE, 10); filter.enableLatestOverlapping(EnumCapturedResultItemType.CRIT_BARCODE, true); mRouter.addResultFilter(filter);val mRouter: CaptureVisionRouter? = CaptureVisionRouter() val filter: MultiFrameResultCrossFilter = MultiFrameResultCrossFilter() // Default value of MaxOverlapingFrames is 5. Increase the number if you want to further improve the stability. filter.setMaxOverlappingFrames(EnumCapturedResultItemType.CRIT_BARCODE, 10) filter.enableLatestOverlapping(EnumCapturedResultItemType.CRIT_BARCODE, true) mRouter?.addResultFilter(filter)