Table of contents
Swift
Objective-C

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
  1. 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);
    }
    
  2. 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
  1. 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);
    
  2. 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)
    

This page is compatible for: