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.
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 support for dynamically modifying a list of items to be found in MatrixScan Find by calling BarcodeFind.setItemList() during a scanning session in BarcodeFind.
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.
Added new APIs in BarcodePick view highlight styles to show a different highlight while waiting for an async pick/unpick action to complete. The new setters & getters for selected brushes and/or icons are in Rectangular, Dot, RectangularWithIcons and DotWithIcons. Additionally, a selected brush and icon can also be provided asynchronously with the new BarcodePickViewHighlightStyleResponse constructor.
Added BarcodePick.selectItemWithData() to programmatically select an item.
Added BarcodeCountView.shouldShowListProgressBar to enable showing/hiding the progress bar when a capture list has been set.
ID
Added IdCaptureSettings.rejectVoidedIds. When enabled, documents voided by authorities are rejected (IdCaptureListener.onIdRejected()). This feature currently supports 3 kinds of invalidation: Cut corners, holes punched in the document, and “VOID” perforations. Additionally, this feature currently supports only US Driver’s Licenses, and has no effect when scanning other document types.
Added RejectedId.rejectionReason which contains the reason why the document was rejected.
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.onIdCaptureTimedOut() is emitted, the callback is invoked whenever a document is localized for a period of time, but could not be captured.
Added AamvaBarcodeResult.rawData.
Fixed truncated surnames in US driver’s licenses using magnetic stripe format.
Added CapturedId.secondaryLastName which contains the common name, known as “nom d’usage” on French passports.
Parser
The Parser has been expanded to support uncompressed GS1 Digital Link:. For the complete documentation of the standard please refer to the official website.
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
Activity/Fragment onResume should call BarcodePickView.onResume().
Activity/Fragment onPause should call BarcodePickView.onPause().
Activity onDestroy or Fragment onDestroyView should call BarcodePickView.onDestroy().
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.onPause() is called, to then be resumed again when BarcodePickView.onResume() 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.onResume() isn’t called before or afterwards.