Scan Multiple Barcodes at Once with Batch MultiScan
Batch MultiScan is the barKoder SDK feature that decodes several barcodes in one camera view or image, whatever their type or size, and keeps the session open for the next batch. Use it as a batch barcode scanning SDK on Android, iOS, the web, the cross-platform frameworks and Python.
With Batch MultiScan, a multi barcode scanner runs inside your own app. Users point a phone, tablet or rugged device at a shelf, a label or a rack of samples, and the SDK returns every barcode it decodes in a single session. Codes can be 1D or 2D, of different sizes, neatly lined up or scattered at random.
What Batch MultiScan does
Reads more than one barcode per frame, up to a maximum results count you set
Keeps the scanning session open after each result
Caches multi-code results for a set duration, 3,000 ms in the docs examples
Lets you tune the delay before the same code is reported again
Covers all common 1D and 2D symbologies, mixed in the same view
How long multi-code results are cached, in milliseconds
3000
duplicatesDelayMs
Delay before the same code is reported again
0
Decoding speed and resolution
Recommended Normal for both; HD resolution in the iOS and Web examples
Normal
If your app won't run on older devices, the docs suggest the Slow decoding speed: it gives more reliable results, and on modern phones the small loss of speed is negligible.
Add a multi barcode scanner to your app
These examples are copied from the barKoder docs.
Kotlin
private fun setMultiScan() {
//In order to perform scanning, config property need to be set before
// If the license key is not valid, results are marked (Unlicensed) and only partly readable
bkdView.config = BarkoderConfig(this, "LICENSE_KEY") {
Log.i("Licensing SDK: ", it.message)
}
// Enabling MultiScan
bkdView.config.isCloseSessionOnResultEnabled = false
BarkoderConfig.SetMulticodeCachingEnabled(true)
BarkoderConfig.SetMulticodeCachingDuration(3000)
bkdView.config.decoderConfig.duplicatesDelayMs = 0
bkdView.config.decoderConfig.maximumResultsCount = 200
// For best result decoding speed should be normal, and barkoder resolution should be normal
bkdView.config.decoderConfig.decodingSpeed = Barkoder.DecodingSpeed.Normal
bkdView.config.barkoderResolution = BarkoderResolution.NORMAL
}
JavaScript
_barkoder.setCloseSessionOnResultEnabled(false);
_barkoder.setMaximumResultsCount(200);
_barkoder.setMulticodeCachingDuration(3000);
_barkoder.setMulticodeCachingEnabled(true);
// For best result decoding speed should be normal, and barkoder resolution should be normal
_barkoder.setDecodingSpeed(Barkoder.DecodingSpeed.normal);
_barkoder.setBarkoderResolution(Barkoder.BarkoderResolution.normal);
Flutter, Capacitor, .NET MAUI and NativeScript use equivalent methods. Cordova lists them in its Cordova API reference.
Not every batch comes from a live camera. The Python Barcode Scanner SDK decodes barcodes from images, streams or files, for server-side processing and desktop automation.
The Python example enables QR, PDF417, Code 128, Data Matrix, Code 93 and Code 39, allows up to 10 barcodes in one go, uses the Slow decoding speed for accuracy and sets the region of interest to the whole frame.
Batch MultiScan runs on smartphones, tablets and industrial cameras, so the same feature serves the warehouse floor, the lab and the pharmacy.
Warehouse inventory management
Warehouses track inventory with phones and tablets, and also with automated guided vehicles, mobile robots and drones. Batch MultiScan is optimized for scanning dozens of codes at once to speed up counting.
Tubes, vials and specimen cassettes usually carry a QR Code or Data Matrix. Reading a whole rack at once speeds up registering samples in a database, from collection to storage or disposal.
Data Matrix is the most used symbol for tracing medicines. Batch MultiScan helps meet track-and-trace requirements for packages, bundles and cases from manufacturer to wholesaler to pharmacy.
Combine Batch MultiScan with AR Mode to outline each detected barcode on the camera preview, label it and mark which codes are already decoded. Users see at a glance what the batch still misses, and Search & Find highlights one value among many.
Damaged, deformed and blurry codes in the same batch
Batch MultiScan reads barcodes from different angles and in different sizes, and works together with barKoder's decoding technologies, so one bad label doesn't stall the batch.
For one code after another instead of many at once, see continuous scanning.
Scan multiple barcodes on every major platform
Batch MultiScan is documented for native Android and iOS, the Web SDK, Flutter, React Native, Capacitor, .NET MAUI, NativeScript and Python. Cordova exposes the same settings in its API reference.
7 native & desktop SDKs
6 cross-platform integrations
One consistent scanning core
Platforms
Native & desktop
Direct SDKs for mobile, browser, desktop and server environments.
Replaced Cognexin factory and logistics track and trace
Two factory and logistics track-and-trace projects run on industrial mobile computers such as the Zebra TC series, with the Barcode Scanner SDK and the Web SDK.
barKoder offers a major advantage with its broad platform support and outperforms other competitor solutions.Nicolas Schaefer, Head of R&D, inexto
Install the free barKoder demo app, or open the web demo, and scan your own barcodes before you integrate the SDK.
iPhone and iPad
barKoder demo app for iOS
Scan with your camera, or point it at the QR code to open the App Store.
Android phones and tablets
barKoder demo app for Android
Scan with your camera, or point it at the QR code to open Google Play.
Any modern browser
barKoder web demo
Runs the Web SDK in your browser, on desktop or mobile, with nothing to install.
Test with known samples. Print or display the testing sheet and scan each 1D and 2D barcode with the demo app. The data sheet summarizes the SDK for your team.
Enable Batch MultiScan in the barKoder SDK: turn off closing the session on result, set the maximum results count above 1, and turn on multi-code caching. Point the camera at the barcodes and the SDK returns each one it decodes. The Enable MultiScan example shows the full setup.
How many barcodes can Batch MultiScan read in one scan?
You set the limit with the maximum results count. The docs examples use 200 on Android, iOS and React Native, 20 on the web and 10 in Python. Real-world batches range from a few codes to dozens, and the feature is optimized for scanning dozens at once.
Can it read different barcode types in the same frame?
Yes. Batch MultiScan decodes multiple barcodes regardless of type or size in one pass, across all common 1D and 2D symbologies. Enable the decoders your labels use, for example Code 128, QR Code and Data Matrix together.
Can I detect multiple barcodes in an image instead of a live camera?
Yes. The Python multiscan example reads up to 10 barcodes from one image with the region of interest set to the whole frame. The Python SDK decodes barcodes from images, streams or files.
How do I avoid counting the same barcode twice?
Batch MultiScan caches multi-code results for a duration you set, and the duplicates delay controls when the same code can be reported again. In your app, keep a set of values already received. With AR Mode, users also see which codes have already been decoded.
What is the difference between Batch MultiScan and continuous scanning?
Both keep the scanner open after a result. Continuous scanning suits one code after another, with control over how soon the same code repeats. Batch MultiScan also reads many codes in the same frame and caches the results, which suits shelves, racks and multi-label boxes.
We use cookies to enhance your browsing experience, analyze site traffic, and personalize content.
You can choose which cookies to accept.
Cookie Preferences
We use different types of cookies to optimize your experience on our website.
Click on the categories below to learn more and adjust your preferences.
Necessary Cookies
These cookies are essential for the website to function and cannot be disabled. They are usually set in response to actions you take, such as setting privacy preferences, logging in, or filling out forms.
Always ActiveView Cookies
barkoderCookieConsent - Stores your cookie preferences
barkoder_session - Session identifier for logged-in users
csrf_token - Security token for form submissions
Functional Cookies
These cookies enable enhanced functionality and personalization, such as chat support, videos, and social media features. They may be set by us or third-party providers.
View Cookies
user_preferences - Stores UI preferences
language - Language selection
theme - Theme preferences
Analytics Cookies
These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously. This includes Microsoft Clarity and Google Analytics.
View Cookies
_ga, _gid, _gat - Google Analytics
_clck, _clsk, CLID - Microsoft Clarity
Marketing Cookies
These cookies are used to track visitors across websites to display relevant and personalized advertisements. They help measure the effectiveness of advertising campaigns and conversions.
View Cookies
_fbp - Facebook Pixel
_gcl_au - Google Ads
IDE, test_cookie - Google DoubleClick
_uetmsclkid, _uetvid, _uetsid, MUID - Microsoft Bing UET (Universal Event Tracking)