Scandit Data Capture SDK 6.24 Beta Release Notes (April 19, 2024)
See also the System Requirements of the Scandit Data Capture SDK across all platforms.
New Features
Barcode
Introduced Smart Scan Intention, a new algorithm that intelligently identifies and then scans the barcode that the user intends to capture, reducing errors. It is enabled in SparkScan by default (see SparkScanSettings.scanIntention) and it can be manually set in Barcode Capture (see BarcodeCaptureSettings.scanIntention:).
In both SparkScan and Barcode Capture, the scanning range for 1D barcodes on Electronic Shelf Labels (ESL) and paper shelf labels was improved up to 30-40% in both Full HD and 4K without compromising scanning speed. This significant enhancement enables Scandit to deliver the fastest and most ergonomic scanning experience for tiny barcodes and ESLs, particularly those placed on top or bottom shelves.
Introduced smart battery management to lower the energy consumption and increase the up-time of the device. In our tests (repeatedly scanning a sequence of 5 different labels mimicking the user movement), this led to an improvement of up to 15% in battery life. This option is disabled by default, but it is possible to enabled it via BarcodeCaptureSettings.batterySavingMode, deciding whether it’s automatic, always on or always off (default).
In SparkScan it is now possible to switch to the user facing camera for scanning. This is useful in specific use-cases in which the rear camera is not accessible or barcodes are hard to reach otherwise. See SparkScanView.cameraSwitchButtonVisible.
Added BarcodeGenerator class, allowing the generation of Code 39, Code 128, EAN13, ITF, QR, UPCA and DataMatrix codes directly in the SDK.
Added support for Symbology.FrenchPost, allowing the recognition of postal codes (code postal) used by the French Post.
Added support for decoding misprinted Symbology.AustralianPost codes.
ID
Added support for extracting data from Mexican Matrícula Consular MRZ.
Added support for per state thresholds in id verification and removed the hardcoded number of features. This is a breaking change, old verification models will not work.
Modified how IdCaptureListener.didTimeoutInSession() is emitted, the callback is invoked whenever a document is localized for a period of time, but could not be captured.
Fixed truncated surnames in US driver’s licenses using magnetic stripe format.
Behavioral Changes
Barcode
The battery saving mode used by SparkScan has changed from BatterySavingMode.Off to BatterySavingMode.Auto. The option can be changed via SparkScanSettings.batterySaving.
Performance Improvements
ID
Improved capture performance for US driver’s license PDF417 barcodes with printing defects, in particular from Ohio, Lousiana, and Florida.
Bug Fixes
Barcode
Fixed the “Tap to Focus” animation when the size of the view changes.
ID
Fixed a crash when scanning a passport MRZ then a non-passport VIZ.
Fixed an issue that caused the century of the dates of birth, issue dates and expiry dates to be returned incorrectly when scanning the VIZ of European IDs, Swiss driver’s licenses and UAE IDs.
Fixed instances where information was incorrectly extracted from British Columbia PDF417.
API Changes
Barcode
Renamed some BarcodePickView methods to make their function more explicit. This now looks as follows:
Lifecycle methods
When the AppState changes to active, BarcodePickView.resume() should be called.
When the AppState changes to inactive or background, BarcodePickView.pause() should be called.
Start/Stop scanning
BarcodePickView.start() Will start the scanning flow, can be manually stopped by calling BarcodePickView.stop(), or will be stopped automatically when BarcodePickView.pause() is called, to then be resumed again when BarcodePickView.resume() is called.
BarcodePickView.stop() Will stop the scanning flow, can be manually started by calling BarcodePickView.start().
Note
Scanning is only possible when in resumed state. Which means that BarcodePickView.start() won’t start the scanning flow if BarcodePickView.resume() isn’t called before or afterwards.