Skip to main content

Changelog | Android Barcode Scanner

tip

For additional details about the API, please refer to our API reference documentation.

Version 6.1.1 (4 Dec 2024)​

  • 🐞 Bug fixes:
    • Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.

Version 6.1.0 (8 Nov 2024)​

  • πŸŽ‰ New:
    • Added support for 16KB page size (Android 15).
    • Added option MultipleScanningMode.allowEmptySubmission to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
  • 🐞 Bug fixes:
    • Fixed KANJI mode for QR codes.
    • Fixed a bug with incorrect raw bytes returned for some 2D barcode types.
    • Fixed an issue with AR Overlay and barcode mapping in BarcodeScannerActivity RTU UI v2.0, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.

Version 6.0.0 (24 Oct 2024):​

  • πŸŽ‰ New:
    • Added new property addAdditionalQuietZone to BarcodeScannerAdditionalConfig.
    • Added a new predefined collection of barcodes, BarcodeFormat.POSTAL, which includes barcodes used in the postal industry.
  • πŸš€ Improvements:
    • AR overlay is enabled by default for FindAndPickScanningMode in Barcode Scanner RTU UI v2 screen.
    • For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
  • 🐞 Bug fixes:
    • Minor fixes for BarcodeScanner appearance in RTU UI v2 to make it consistent with iOS counterpart.

Version 5.2.0 (28 Jun 2024)​

  • πŸŽ‰ New:
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
    • Added properties australiaPostCustomerFormat, useIATA2OF5Checksum and useCode11Checksum to BarcodeAdditionalParameters, BarcodeScannerAdditionalConfiguration for RTU UI screen and BarcodeRecognizerConfiguration for RTU UI v2 screen.
    • Added AustraliaPostCustomerFormat enum to represent formats of the barcode data for the Australian Post customer barcode.
    • Added resetPolygonState() in BarcodePolygonView to properly clean its state when disabling it after scanning.
  • πŸš€ Improvements:
    • Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec.
    • Improved GS1 string handling with new modes for decoding and validation. See Gs1Handling.
    • ScanbotCameraXView now logs more information throughout its lifecycle (use filter by ScanbotCameraXView tag). Logging is enabled only in the 'debug' builds.
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
  • 🐞 Bug fixes:
    • Fixed R8 obfuscation config for SDK logging classes.
    • Fixed a bug in ScanbotColor where setting isArgb to true, resulted in a wrong color.
  • ⚠️ Breaking Changes:
    • Removed enum BarcodeDensity.
    • Removed property codeDensity from BarcodeAdditionalParameters.
    • Removed enum values VALIDATE and DECODE from Gs1Handling and replaced them by DECODE_STRUCTURE, DECODE_FULL, VALIDATE_STRUCTURE and VALIDATE_FULL.
    • Removed redundant fields barcodeImagePath and barcodePreviewFramePath from Result class in Barcode Scanner RTU UI v2.
    • Changed barcodesRegexFilter config behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex.
  • πŸš™ Under the hood:
    • Updated 3rd-party libraries:
      • added gs1-syntax-dictionary lib

Version 5.1.2 (27 Jun 2024)​

  • πŸš€ Improvements:
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
  • 🐞 Bug fixes:
    • Fixes a bug in ScanbotColor where setting isArgb to true, resulted in a wrong color.

Version 5.1.0 (29 May 2024)​

  • πŸŽ‰ New:
    • Added new property barcodesRegexFilter to BarcodeRecognizerConfiguration for Barcode Scanner RTU UI v2 screen.
    • Added support of the new 'Find and Pick' barcode scanning mode, see FindAndPickScanningMode.
    • Added support for continuous scanning in the BarcodeScannerView composable.
    • Added support for new barcode format BarcodeFormat.MICRO_PDF_417.
    • Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
    • Added new class BarcodeTextLocalization and new property localization to BarcodeScannerConfiguration to support localized strings.
  • 🐞 Bug fixes:
    • Fixed SoundController crash on Android API <= 23.
    • Fixed behavior of 'Update' Button in Manual Count Edit Dialog for Barcode Scanner RTU UI v2 screen.
  • ⚠️ Breaking changes:
    • Replaced the class BarCodeFormattedResult by GenericDocuments class for barcode document parser output.
    • Added new classes for all the barcode document formats. See the API documentation for more details.
    • Deleted deprecated isLicenseActive and isLicenseValid from ScanbotBarcodeScannerSDK. Please use licenseInfo.isValid instead.
    • Renamed ScanbotPalette to Palette for consistency with RTU UI v2 configuration classes.
    • BarcodeExtensionsFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
    • Made the property type: BarcodeFormat? in io.scanbot.sdk.ui_v2.barcode.configuration.BarcodeItem optional.
    • Changed default UI behavior in Barcode Scanner RTU UI v2. If BarcodeMappedData.barcodeImage in BarcodeItemMapper is empty - placeholder image will be shown. If BarcodeMappedData.barcodeImage is set with BarcodeMappedDataExtension.barcodeFormatKey constant - the barcode image will be displayed.
  • πŸš™ Under the hood:
    • Updated 3rd-party libraries:
      • libjpeg-turbo to 2.1.5.1
      • libpng to 1.6.40
      • libtiff to 4.6.0
    • Extracted parts of ScanbotBarcodeScannerSDK API to the LicensableSdk and BarcodeScanningSdk interfaces.
    • Migrated project to AGP 8.x.
    • Added more rules for R8 shrinker to work adequately with AGP >= 8.
    • Added Theme.AppCompat.NoActionBar theme as default for Barcode Scanner RTU UI v2 activity.
    • Added Consumer Proguard rules for RTU UI v2 modules.

Version 5.0.0 (1 Mar 2024)​

  • πŸŽ‰ New:
  • πŸš€ Improvements:
    • Optimized speed of the camera preview frames handling for all scanners.
    • Changed the touch to focus square in ScanbotCameraXView to a circle.
  • 🐞 Bug fixes:
    • For BarcodeFormat.PDF_417, a single case to generate clusters was not covered, which led to a crash.
    • Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
  • ⚠️ Breaking changes:
    • Renamed RSS_14 barcode format to DATABAR and RSS_EXPANDED to DATABAR_EXPANDED.
    • BatchBarcodeScannerActivity class from RTU UI v1 is now marked as 'Deprecated'.
    • Removed BarcodeFormat.CODE_25 from BarcodeFormat.COMMON_CODES list.
    • ZoomRange can be created with any input values but will be limited under the hood by internal MIN_ZOOM (x0.2) and MAX_ZOOM (x100) values.
  • πŸš™ Under the hood:
    • Class SoundController was renamed to SoundControllerImpl and interface SoundController was extracted.

Version 4.2.0 (07 Dec 2023)​

  • πŸŽ‰ New:
    • Added support for new barcode type GS1_COMPOSITE.
  • πŸš€ Improvements:
    • Added more control over how to handle GS1 messages in barcodes. See BarcodeScannerAdditionalConfig.setGs1HandlingMode.
  • ⚠️ Breaking Changes:
    • The property enableGS1Decoding has been replaced by the enum Gs1HandlingMode in BarcodeScannerAdditionalConfig.
    • GS1 codes are now handled differently for various barcode types. Using the default option PARSE will give the same result as before for all barcode types, except of RSS_EXPANDED. Previously, for RSS_EXPANDED, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the option DECODE.

Version 4.1.0 (30 Nov 2023)​

  • πŸŽ‰ New:
    • Added new supported barcode formats - BarcodeFormat.USPS_INTELLIGENT_MAIL, BarcodeFormat.ROYAL_MAIL, BarcodeFormat.JAPAN_POST, BarcodeFormat.ROYAL_TNT_POST, BarcodeFormat.AUSTRALIA_POST and DATABAR_LIMITED.
  • πŸš€ Improvements:
    • Optimized default and custom preview/picture size selection in the ScanbotCameraXView.
    • Optimized setForceMaxSnappingSize(enabled: Boolean) behavior in the ScanbotCameraXView.
    • Improved pinch-to-zoom gesture in ScanbotCameraXView.
    • Added setLifecycleOwner(lifecycleOwner: LifecycleOwner) method for view controller in BarcodeScannerView to improve compatibility with Compose UI.
  • 🐞 Bug fixes:
    • Added setBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>) method in BatchBarcodeScannerConfiguration class.
  • ⚠️ Breaking changes:
    • If you are using setPictureSize(pictureSize: Size), setCameraFrameSize(frameSize: Size) or setPreviewFrameSize(frameSize: Size), make sure input Size has the correct orientation (fits the view or display size).
    • All scanner components have been switched to zoom ratio (values 1x, 2x, etc.) instead of linear zoom (from 0 to 1). Methods renamed: setOpticalZoomRange() -> setPhysicalZoomRange(); setOpticalZoomLevel() -> setPhysicalZoomRatio() in ScanbotCameraXView, BarcodeScanAndCountView and BarcodeScannerView. setPhysicalZoomRange() and setPhysicalZoomRatio() accept possible zoom values from 0.5x up to 100x. NOTE: if the value sent to the camera is out of range for a specific device's capabilities, then the camera will try to set the max or min possible for that specific device. eg. Zoom 100x will only work on some high-end Samsung devices, whereas other devices will only have 12x-30x max. The same goes for minimum supported values, 0.5x is a wide-format camera module that does not exist on many Android devices.
  • πŸš™ Under the hood:
    • Updated version of Nameof C++ library to v0.10.3.
    • Disabled GPU acceleration for Redmi 9 models, Samsung Galaxy Grand Prime and devices with Android older than 6.

Version 4.0.1 (12 Sep 2023)​

  • πŸš€ Improvements:
    • Fixed false positives for Code 39 and Codabar barcodes.
    • Fixed potential memory leak in all RTU-UI screens.

Version 4.0.0 (24 Aug 2023)​

  • πŸš€ Improvements:
    • It is now possible to color each barcode on the barcode AR overlay. Use barcodeScannerView.selectionOverlayController.setBarcodeAppearanceDelegate(delegate: BarcodePolygonsView.BarcodeAppearanceDelegate) to manage polygon appearance.
    • Reduced the number of barcode detector models from 3 to 2. The model used in Fast mode is now ~20% faster, about the same speed as Fastest mode.
  • 🐞 Bug fixes:
    • Removed conflicting "app_name" string resources from library modules.
    • Fixed bug for BarcodePolygonsStaticView where it crashed if barcodeItemViewFactory returns null instead of view.
    • Before, for certain invalid decodings of QR and MicroQR codes, an exception was thrown from ZXing. Now we rigorously treat this as a format error.
    • Before, we have returned CODE_25 results when INDUSTRIAL_2_OF_5 was enabled and CODE_25 was disabled. Now, we do not return the CODE_25 result for such decoding options.
  • ⚠️ Breaking changes:
    • Removed methods from BarcodePolygonsView and BarcodeScannerView.selectionOverlayController related to polygon and text view appearance. E.g. setStrokeColor etc. Please use BarcodeAppearanceDelegate instead!
  • πŸš™ Under the hood:
    • Removed UNKNOWN barcode type from the API as it is applicable only for internal usage.
    • Fixed declaration of attributes polygonStrokeDeclinedColor and polygonFillDeclinedColor.

Version 3.7.0 (13 Jul 2023)​

  • πŸŽ‰ New:
    • Added support for MicroQR codes.
    • Added setViewFinderEnabled method to BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration - this toggles the visibility of the viewfinder. Defaults to true.
    • Added a scanned barcode confirmation dialog in the BarcodeScannerActivity RTU screen and a configuration class BarcodeConfirmationDialogConfiguration in BarcodeScannerConfiguration to modify the dialog UI.
    • Added Scan and Count of Barcodes feature. Use BarcodeScanAndCountView to integrate it into your app.
    • Added a new public interface for extracting images from PDF files: PdfImagesExtractor.
    • Added a new implementation of PdfImagesExtractor and PdfPagesExtractor based on the Pdfium library. Add the optional 'io.scanbot:barcode-sdk-pdfium:SDK_VERSION' dependency to use it.
  • πŸš€ Improvements:
    • Stripped down the Android dynamic symbol table in native libraries. As a result, the size of the native shared libraries has decreased.
    • Improved accuracy and detection speed of QR_CODE, Code39, and Code93 barcode types.
    • Added support for inverted PDF-417 barcodes.
    • Optimized the size of native libraries integrated into the Scanbot Barcode SDK.
    • Added a flag detectFromNv21(..., isLive: Barcode) in ScanbotBarcodeDetector to detect barcodes on NV21 images in the static image mode.
  • 🐞 Bug fixes:
    • Fixed a crash within the barcode detector.
    • Fixed a typo in Libraries.txt.
    • Fixed the detection of a few false positive RSS_EXPANDED barcodes in live mode.
    • Fixed a bug with incorrect (mirrored) preview when CameraModule.FRONT is set up for ScanbotCameraXView.
  • πŸš™ Under the hood:
    • Improved attribute handling to support the generation of one AAR.
    • The BlackView and Caterpillar brands have been excluded from GpuAcceleration-supported devices.
    • Improved cross-platform parameter handling from the refactored configurations structure.
    • Added an OPTIONAL 3rd-party open-source dependency - the Pdfium library (licensed under the Apache License Version 2.0). By default, the Pdfium library is NOT added to the Scanbot Barcode SDK dependencies.

Version 3.6.1 (25 May 2023)​

  • 🐞 Bug fixes:
    • Fixed a crash within the barcode detector.
    • Fixed typo in Libraries.txt.
  • πŸš™ Under the hood:
    • Improved attributes handling to support generation of one AAR.

Version 3.6.0 (03 May 2023)​

  • πŸŽ‰ New:
    • Added type BarcodeFormat.CODE_25 that was previously considered as type INDUSTRIAL_2OF5 without checksum. The INDUSTRIAL_2OF5 checksum option is now removed and thus, depending on a valid checksum, we either return INDUSTRIAL_2OF5 or CODE_25.
  • πŸš€ Improvements:
    • Added BarcodeItemViewPositionHandler that helps to adjust the position of the barcode description view in relation to the polygon contour.
    • Improved preview quality selection logic for ScanbotCameraXView.
    • Stacked RSS barcode scanning has seen substantial improvements.
    • Improved the FinderOverlayView behavior when the UI container is dynamically resized (e.g., on keyboard events, etc.).
    • Added setForceMaxSnappingQuality(enabled: Boolean) in IScanbotCameraView interface (implemented only in ScanbotCameraXView implementation): controls whether the camera should force the maximum possible quality for the snapped picture. As a result, the snapping speed could be significantly slower and the resulting image could be bigger. The default is false.
    • Added setSnappingAutoAdjustment(enabled: Boolean) in IScanbotCameraView (implemented only in ScanbotCameraXView implementation): controls whether the camera should apply image post-processing (e.g., switching to low-light mode or HDR mode, applying face retouch, etc.). Implementation of post-processing depends on the vendor's implementation of the Camera API. The default is false.
  • 🐞 Bug fixes:
    • Fixed a visual glitch with ScanbotCameraXView on Xiaomi devices, which happened before the preview started.
    • Fixed a bug where ScanbotCameraXView sometimes threw RejectedExecutionException after the camera stopped.
    • Fixed Scanbot camera views not resolving Context correctly if used in Activity/Fragment with Hilt's @AndroidEntryPoint annotation.
    • Fixed Scanbot RTU-UI scanners handling when the app is terminated in the background.
  • ⚠️ Breaking changes:
    • FinderAspectRatio and PageAspectRatio classes are now deprecated and merged into AspectRatio common class. Please use AspectRatio instead.
    • Removed parameter decodeStacks1D. The decoding of stacked barcodes is now handled automatically.
    • FrameHandler interface was converted to an abstract class. If you have custom FrameHandlers, please add constructor invocation to your FrameHandler implementation.
    • Some of the Scanbot SDK artifact IDs have been changed and need to be updated in your build.gradle's dependencies block:
      • all users of io.scanbot:sdk-crypto-persistence should change this dependency to io.scanbot:bundle-sdk-crypto-persistence (or to io.scanbot:barcode-sdk-crypto-persistence if you are using Scanbot Barcode standalone SDK)
  • πŸš™ Under the hood:
    • Enabled -fstack-protector-all on Android
    • Removed usage of backward-cpp library
    • FrameHandlers won't return the result if FrameHandler.isEnabled is set to false after actual frame detection
    • Bumped Dagger version to 2.44
    • Updated Kotlin library to 1.7.10
    • Changed the default JPEG compression quality from 95 to 100 for ScanbotCameraXView. As a result, snapped images will be bigger but of better quality

Version 3.5.0 (27 Feb 2023)​

  • πŸŽ‰ New:
    • Added a new automaticSelectionEnabled option to SelectionOverlayConfiguration for BarcodeScannerActivity and BatchBarcodeScannerActivity RTU UI screens
  • πŸš€ Improvements:
    • The raw string is returned for RSS Expanded barcodes that don't contain a GS1 string
    • Updated BarcodeScannerAdditionalConfigBuilder with decodeStacks1D and codeDensity parameters
  • 🐞 Bug fixes:
    • Fixed the ScanbotCameraXView instantiation error in Layout Editor
    • Fixed the memory leak of CameraManager in ScanbotCameraXView
    • Fixed NPE in the ScanbotCameraXView when the startPreview() function is called while the ScanbotCameraXView was detached
    • Fixed an issue with InitialScanDelayMs and DelayAfterScanMs options not working in BarcodeScannerConfiguration when BarcodeImageGenerationType.CAPTURED_IMAGE and BarcodeImageGenerationType.VIDEO_FRAME output generation types were used
    • Fixed ScanbotCameraXView not working after reattaching to a window
  • πŸš™ Under the hood:
    • Update TensorFlow Lite to 2.10

Version 3.4.0 (16 Dec 2022)​

  • πŸŽ‰ New:
    • Added new parameter decodeStacks1D in BarcodeScannerAdditionalConfig for Barcode Scanner. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed.
  • πŸš€ Improvements:
    • Improved recognition of inverted barcodes
    • Improved performance and reduced false positive rate for stacked RSS barcodes
    • Improved performance of DataMatrix and QR-codes
  • πŸš™ Under the hood:
    • Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1)

Version 3.3.1 (17 Nov 2022)​

  • 🐞 Bug fixes:
    • Fixed crashes on devices running Android 5 and 6 in some scenarios
    • Fixed compatibility with 3rd party obfuscated libraries
  • πŸš™ Under the hood:
    • Removed CommonsIo, CommonsCodec and CommonsLang dependencies
    • Changed the package name to io.scanbot.sdk.PUBLISH_ARTIFACT_ID for the internal obfuscated classes
    • Improve allocated memory releasing mechanism for Barcode Scanner

Version 3.3.0 (25 Oct 2022)​

  • πŸŽ‰ New:
    • Added setVibrationEnabled(enable: Boolean) method to enable/disable the vibration feature in io.scanbot.sdk.util.snap.SoundController class. NOTE: android.permission.VIBRATE permission is required!
    • Added bleepResId: Int and bleepUri: Uri parameters to the SoundController class constructors to customize the bleep sound. By default the SDK specific sound will be played.
    • New barcode types are supported: IATA 2 of 5 and Industrial 2 of 5. Please note that they are disabled by default. See BarcodeFormat
    • BarcodePolygonsView allows visualization of barcode contours when using classical components
    • Selection overlay layer based on BarcodePolygonsView can be enabled for BarcodeScannerView via BarcodeScannerView.selectionOverlayController.setEnabled
    • Selection overlay can be enabled and configured for ready-to-use UI via BarcodeScannerConfiguration.setSelectionOverlayConfiguration(...)
    • New properties InitialScanDelayMs and DelayAfterScanMs in BarcodeScannerConfiguration allow delaying the initial scan and/or pausing the preview after scanning the barcode
  • πŸš€ Improvements:
    • Improved crops and contours for detected barcodes
  • 🐞 Bug fixes:
    • Fixed a bug with RTU Barcode scanner not being able to produce image of BarcodeImageGenerationType.CAPTURED_IMAGE when an instance of IBarcodeFilter is set.
  • ⚠️ Breaking changes:
    • Moved and renamed io.scanbot.sdk.ui.utils.ScanBeeper class from the RTU-UI module to the package io.scanbot.sdk.util.snap.SoundController in the base scanbot-sdk-1 module.
  • πŸš™ Under the hood:
    • For ScanbotCameraXView - when CameraOpenCallback is set - the onCameraOpened method's call was moved later in the lifecycle: now called at the latest point in time when the camera preview is confirmed to be streaming.
    • Updated third-party libraries: Gson to 2.9.1, CommonsIo to 2.11.0 and CommonsCodec to 1.15

Version 3.2.3 (16 Aug 2022)​

  • πŸŽ‰ New:
    • Each RTU UI configuration and ScanbotSDKInitializer class now contains fromJson(input: String) and modifyFromJsonConfiguration(<ScreenName>JsonConfiguration) methods allowing to create or edit the configuration classes using JSON input. The format of the JSON string should be compatible with <ScreenName>JsonConfiguration class
    • Added new configuration option codeDensity in BarcodeScannerAdditionalConfig for Barcode Scanner
    • Added codeDensity configuration option for Barcode Scanner RTU UI screen
  • πŸš€ Improvements:
    • Added new insets API for the finder box:
      • finderInsets allows setting the finder edge padding from the camera preview edges.
      • safeAreaInsets can add additional padding to the finder. This is particularly useful when part of the camera preview is covered by another widget (e.g. a navigation bar), thus preventing the finder from appearing behind this widget.
  • 🐞 Bug fixes:
    • Fixed incorrect preview size calculation after granting permission for legacy ScanbotCameraView
  • ⚠️ Breaking changes:
    • Changed the default Camera View to ScanbotCameraXView based on CameraX API in all RTU UI screens
    • Removed EngineMode.Legacy support for Barcode Scanner
    • setFinderOffset deleted. Use finderInset values instead
  • πŸš™ Under the hood:
    • Updated compileSdk version to 31
    • Updated Android CameraX version to 1.1.0
    • Updated the version of kotlin std library to 1.6.21
    • Updated the version of Dagger library to 2.41
    • Updated Boost C++ version to 1.79.0
    • setFinderMinPadding() works on finderInsets API

Version 3.2.2 (13 Jun 2022)​

  • πŸŽ‰ New:
    • Added Fragment.registerForActivityResultOk method for calling activity from fragments for subscribing to success result with the new Activity Result API.
    • With the new BarcodeScannerView Classical component, the integration of barcode scanning with a Custom UI is now even easier!
  • πŸš€ Improvements:
    • Improved behavior of FinderOverlayView and its child classes. Now any Finder View can inject other layouts inside itself and these parts would be properly positioned with the finder window changes. There are 3 customizable parts:
      • top - is a zone above the finder window. Can be used for inserting some hints.
      • bottom - is a zone below the finder window. Can be used for inserting some hints.
      • center - is a zone inside the finder window. Can be used for showing an overlay inside the finder window.
  • 🐞 Bug fixes:
    • Fixed a crash on specific PDF-417 codes with boarding passes.
    • Fixed a potential crash in ScanbotCameraXView when taking a picture after the screen was paused.
  • ⚠️ Breaking changes:
    • finder_description view id is no longer used to place text views below the finder. Please use new API.

Version 3.2.1 (20 Apr 2022)​

  • 🐞 Bug fixes:
    • Fixed a crash on specific PDF-417 codes with boarding passes

Version 3.2.0 (07 Apr 2022)​

  • πŸš€ Improvements:
    • Huge improvement on the speed and accuracy of 1D barcodes recognition.
    • Native libraries size decreased by more than 20%
  • 🐞 Bug fixes:
    • By default, GPU acceleration has been enabled (issues with the Samsung S22 series devices are fixed).
    • Fixed cropped images of 1D barcodes.
  • πŸš™ Under the hood:
    • Updated the version of JSON for Modern C++ library to 3.10.2
    • Updated the version of BOOST C++ library to 1.75.0
    • Updated the version of OpenCV library to 4.5.3
    • Updated the version of Nameof C++ library to 0.10.1
    • Updated the version of LibTIFF library to 4.2.0
    • Updated the version of ZXing-C++ library to 1.1.0
    • Updated the version of OpenSSL library to 1.1.0h
    • Updated the version of XNNPACK library to fb8d1f1b2 git commit
    • Updated the version of TensorFlow library to 339ccc2b03 git commit
    • Replaced the OpenJPEG library with libjpeg-turbo library 2.1.2
    • Added the Skia library of 47b4b19 git commit
    • Added the spdlog library of 1.9.2 version

Version 3.1.2 (11 Mar 2022)​

  • 🐞 Bug fixes:
    • By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use ScanbotBarcodeScannerSDKInitializer().allowGpuAcceleration(true).
    • Fixed an incorrectly thrown FileAccessException in ScanbotBarcodeScannerSDKInitializer when cleaning deprecated blob files.

Version 3.1.1 (23 Feb 2022)​

  • πŸŽ‰ New:
    • Added the possibility to replace the cancel button in the RTU UI top toolbars with an icon. Please check the configuration.setCancelButtonIcon() methods of the configuration.
    • Added a class BarcodeDocumentParser to parse a string into a supported barcode document type.
    • Added support for the GS1 barcode document format, see Gs1Document.
  • ⚠️ Breaking changes:
    • Renamed the class DisabilityCertificateDocument in the barcode scanner to MedicalCertificateDocument.
  • πŸš™ Under the hood:
    • Removed the usage of fragments in BarcodeScannerActivity and BatchBarcodeScannerActivity.

Version 3.1.0 (14 Jan 2022)​

  • πŸŽ‰ New:
    • Added fun setMinFocusDistanceLock(lock: Boolean) in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration for RTU UI screens to lock in the minimum supported camera focus distance (supported only with CameraX)
    • Added fun lockMinFocusDistance(lock: Boolean) in IScanbotCameraView to lock in the minimum supported camera focus distance (supported only with CameraX)
    • New option lowPowerMode: Boolean in BarcodeScannerAdditionalConfiguration for BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration for RTU UI screens and ScanbotBarcodeDetector classical component
  • πŸš€ Improvements:
    • Significantly improved recognition of Aztec barcodes
    • Added method setFinderMinPadding to the FinderOverlayView, making it possible to change this value programmatically rather than only from XML
  • 🐞 Bug fixes:
    • Fixed a bug which made it impossible to start RTU UI activities with the legacy startActivityForResult approach

Version 3.0.8 (15 Dec 2021)​

  • πŸŽ‰ New:
    • Added Scanbot implementation of AndroidX Activity Result API to every RTU UI activity. Please see the documentation for RTU UI components.
    • Added properties textWithExtension and metadata to BarcodeItem to support barcode extensions of UPC and EAN barcodes
    • The results screen of the BatchBarcodeScannerActivity now displays textWithExtension instead of text
    • Added new boolean flag enableNativeLogging (by default - false) in ScanbotBarcodeScannerSDKInitializer#withLogging(useLog: Boolean, enableNativeLogging: Boolean) method
    • Support for barcode scanner results filtering in RTU-UI barcode scanning components
    • Added 2 implementations of IBarcodeFilter interface - BarcodeFilter and BarcodeExtensionsFilter
    • New setters setBarcodeFilter(barcodeFilter: IBarcodeFilter) in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration for RTU UI screens
    • Added setPreviewFrameSize(frameSize: Size) and setAnalyzerFrameSize(frameSize: Size) methods in ScanbotCameraXView for more flexible camera frame size modifications
  • 🐞 Bug fixes:
    • Fixed a crash in the barcode detector with Legacy engine mode on stable images
    • Fix incorrect preview size resolving which caused the impossibility to perform scanning with the legacy ScanbotCameraView on some budget devices
  • πŸš€ Improvements:
    • Improved recognition of small barcodes on large images
    • Improved recognition of stacked RSS Expanded (GS1) barcodes
    • Improved rectangular DataMatrix performance
    • Increased performance on stable images with PDF-417 barcodes
    • If the Scanbot SDK is not initialized, RTU UI screens are force closed without the RuntimeException
  • ⚠️ Breaking changes:
    • Renamed setPreviewSize(previewSize: Size) to setCameraFrameSize(frameSize: Size) in ScanbotCameraXView
    • Constants RESULT_LICENSE_INVALID, CANCELLATION_REASON_TIMEOUT, SCANNED_BARCODE_EXTRA, SCANNED_BARCODE_IMAGE_PATH_EXTRA, SCANNED_BARCODE_PREVIEW_FRAME_PATH_EXTRA were deleted. Instead we have implemented AndroidX Activity Result API for RTU UI components. Also - if you prefer to stick with deprecated startActivityForResult approach - we have added utility methods that encapsulate all the verbosity of getting the result entity from the activity's result Bundle. Please see the documentation for RTU UI components.
  • πŸš™ Under the hood:
    • Updated the version of CWAC Camera library to 0.6.42

Version 3.0.7 (30 Nov 2021)​

  • 🐞 Bug fixes:
    • Fixed a bug for when BatchBarcodeScannerActivity ignored the parameter passed to batchBarcodescannerConfiguration.setCameraModule()

Version 3.0.6 (5 Nov 2021)​

  • πŸŽ‰ New:
    • Added allowGpuAcceleration(enable: Boolean) method in ScanbotBarcodeScannerSDKInitializer which enables GPU acceleration for TensorFlow ML models
    • Added precompileGpuMlModels(precompilingCallback: () -> Unit) method in ScanbotBarcodeScannerSDKInitializer which performs GPU ML models precompilation
  • 🐞 Bug fixes:
    • Fixed a bug in BatchBarcodeScannerActivity for when it doesn't show the camera preview after the camera permission approval
    • Fixed a bug when BarcodeScannerActivity does not detect any barcodes with the image generation type VIDEO_FRAME
    • Fixed possible crash with Barcode Scanner activities after the camera permission request
  • πŸš™ Under the hood:
    • Updated 3rd party libraries used in SDK, see [[Open Source Libraries in Scanbot SDK]]

Version 3.0.5 (13 Oct 2021)​

  • πŸŽ‰ New:
    • A new method forceClose() was added into our RTU UI components allowing to manually finish the RTU UI Screen (Activity) from the calling code
    • Now it is possible to access the current state of the flashlight using isFlashEnabled method in IScanbotCameraView
    • Ready to Use UI components can now use CameraX under the hood. Use ScanbotBarcodeScannerSDKInitializer.useCameraXRtuUi(true) to enable it
    • startPreview() and stopPreview() methods are available for ScanbotCameraXView as well
  • πŸš€ Improvements:
    • ScanbotCameraXView now uses better preview quality by default
    • ScanbotCameraXView performance was optimized
  • 🐞 Bug fixes:
    • Fixed long initialization of ScanbotCameraXView on foldable devices
  • πŸš™ Under the hood:
    • Refactored internal architecture of all RTU screens
    • Removed RxJava and RxAndroid libraries from RTU dependencies

Version 3.0.4 (15 Sep 2021)​

  • πŸŽ‰ New:
    • A new flag allowXnnpackAcceleration was added in ScanbotBarcodeScannerSDKInitializer allowing to control whether the XNN pack optimizations should be used (true by default)
  • 🐞 Bug fixes:
    • Fixed MSI_PLESSEY_CHECKSUM_ALGORITHMS, STRIP_CHECK_DIGITS and CAMERA_ZOOM parameters being ignored in BatchBarcodeScannerConfiguration
  • ⚠️ Breaking changes:
    • The corner_radius attribute of FinderOverlayView was renamed to sbsdk_corner_radius

Version 3.0.3 (3 Sep 2021)​

  • πŸš€ Improvements:
    • Improved recognition of UPC/EAN barcodes due to ink spread
    • The resultPoints field of the BarcodeItem now contains correct information about the contours of the detected barcodes
  • 🐞 Bug fixes:
    • Fixed a rotation issue in ScanbotCameraXView
  • ⚠️ Breaking changes:
    • Update compile and target SDK of the library to 30
    • The resultPoints field of the BarcodeItem is no longer nullable
  • πŸš™ Under the hood:
    • Bump CameraX version to stable 1.0.1 and CameraX View to 1.0.0-alpha28

Version 3.0.2 (6 Aug 2021)​

  • πŸŽ‰ New:
    • PictureCallback now contains information if the image was captured automatically
    • Added a new method takePicture(acquireFocus: Boolean, isCapturedAutomatically: Boolean) in IScanbotCameraView which should be called with isCapturedAutomatically = true from a custom AutoSnappingController
    • Additional parameter stripCheckDigits: Boolean in BarcodeScannerAdditionalConfig for BarcodeDetector classical component
    • Additional parameter stripCheckDigits: Boolean in BarcodeScannerAdditionalConfiguration for RTU UI screens
  • πŸš€ Improvements:
    • Significant performance improvements of the scanner
    • All-zeros MSI Plessey barcodes are ignored now
    • Additional Information field in SEPA barcode document type now parsed correctly to match the specification
  • ⚠️ Breaking changes:
    • The parameter imageOrientation in PictureCallback was replaced by CaptureInfo which contains the orientation of the image and if it was captured automatically
    • IMPORTANT! Added create prefix to names of all the methods in ScanbotSDK and ScanbotBarcodeScannerSDK, that return new instances of scanners, processors or storages. Methods without this prefix return Singleton objects.
    • Reference and Hint fields in SEPA barcode document type were replaced by Purpose and Remittance to match the specification
  • πŸš™ Under the hood:

Version 3.0.1 (5 Jul 2021)​

  • 🐞 Bug fixes:
    • Fixed a crash after the license expiration in Classical components

Version 3.0.0 (1 Jul 2021)​

  • πŸŽ‰ New:
    • Brand new β€œNext Generation” machine-learning-based barcode scanning engine with improved reliability and much faster performance
    • Added new config parameter engineMode: EngineMode in BarcodeScannerConfig for ScanbotBarcodeDetector. By default ScanbotBarcodeDetector uses EngineMode.NextGen based on a new ML model
    • Added new RTU config method setEngineMode(engineMode: EngineMode) in BarcodeScannerConfiguration. By default - EngineMode.NextGen.
    • Added the possibility to customize the delay between successful frames for BatchBarcodeScannerActivity. Default changed from 1000 ms to 0 ms (no delay)
  • ⚠️ Breaking changes:
    • Removed disableMlDetector config parameter in BarcodeScannerConfig. Use EngineMode.LegacyFast instead.
    • Removed BarcodeDetectorType class and setDetectorType() method from Barcode RTU screens. Use setEngineMode(engineMode: EngineMode) instead.
    • Removed unused parameters width: Int and height: Int from detectFromJpeg(jpeg: ByteArray, frameOrientation: Int) method in ScanbotBarcodeDetector
  • πŸš™ Under the hood:
    • New third-party libraries: xsimd, xtl und xtensor (see Libraries.txt)

Version 1.8.0 (17 Jun 2021)​

  • πŸŽ‰ New:
    • Added a new supported barcode format BarcodeFormat.MSI_PLESSEY. By default MSI-Plessey is disabled, you must explicitly pass it as an accepted type
    • Additional parameter msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm> in BarcodeScannerAdditionalConfig for BarcodeDetector classical component
    • Additional parameter msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm> in BarcodeScannerAdditionalConfiguration for RTU UI screens
    • Added new parameter to the SdkLicenseInfo class licenseStatusMessage: String?
  • πŸš€ Improvements:
    • Clearer default values for user guidance strings on RTU UI screens
  • 🐞 Bug fixes:
    • Fixed a problem with UPC-A barcodes being recognized as EAN13 barcodes
  • ⚠️ Breaking changes:
    • Changed signature of the handleLicenceStatusError method in IScanbotSDKLicenseErrorHandler. Added additional parameter errorMessage : String

Version 1.7.0 (21 Apr 2021)​

  • πŸŽ‰ New:
    • Added a new option setOpticalZoomRange(zoomRange: ZoomRange) in IScanbotCameraView
    • Added two new options setCameraZoomFactor(zoomFactor: Float) and setCameraZoomRange(zoomRange: ZoomRange) in BarcodeScannerConfiguration for BarcodeScannerActivity RTU screen
    • Added gs1DecodingEnabled parameter in BarcodeScannerAdditionalConfig and BarcodeScannerAdditionalConfiguration to disable the decoding of FNC1 characters in CODE128 barcodes
  • πŸš€ Improvements:
    • Initialization parameters for AESEncryptedFileIOProcessor (key: SecretKey?, initializationVector: ByteArray, salt: ByteArray and iterationCount: Int) became public.

Version 1.6.0 (29 Mar 2021)​

  • πŸŽ‰ New:
    • Now it is possible to set ScanbotBarcodeDetector to scan only the given types of BarcodeDocumentFormat and filter out others automatically
    • Added minimumTextLength, maximumTextLength, minimum1DQuietZoneSize params for ScanbotBarcodeDetector as BarcodeScannerAdditionalConfig entity.
    • Added new method setBarcodeScannerAdditionalConfiguration for RTU BarcodeScannerConfiguration to set the minimumTextLength, maximumTextLength, minimum1DQuietZoneSize params.
  • πŸš€ Improvements:
    • Wrapped general JVM exceptions with specific Scanbot SDK alternatives to enhance crash report readability.
    • Optimized memory consumption of BarcodeDetector
    • scanbot-sdk-crypto-persistence library supports min API 21+
  • 🐞 Bug fixes:
    • Fixed calculation of the visible rectangle for CameraView. It solves problems related to the scanning of documents which have borders close to the edge of the screen
    • Fixed multiple simultaneous detection results on a single ITF barcode
  • ⚠️ Breaking changes:
    • IMPORTANT! Classical component ScanbotBarcodeDetector is no longer a singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).barcodeDetector() elsewhere will return a new instance of this component with default config. Refer to example implementation.
    • Removed a set of methods from ScanbotBarcodeDetector and BarcodeDetectorFrameHandler - code should be updated to use new setConfig and modifyConfig methods and BarcodeScannerConfig entity.
    • CheckableTextView was removed from the SDK. Consider the usage of CheckedTextView from Android SDK instead
  • πŸš™ Under the hood:
    • Updated AndroidX Security Crypto library to the version 1.1.0-alpha03
    • Removed AndroidX security-identity-credential library from dependencies

Version 1.5.1 (10 Mar 2021)​

  • ⚠️ Breaking changes:
    • Removed barcode format BarcodeFormat.MSI_PLESSEY

Version 1.5.0 (22 Feb 2021)​

  • πŸŽ‰ New:
    • Added support of parsing of Swiss QR codes in Barcode scanner
  • πŸš™ Under the hood:
    • Optimized delay handling between camera frames in BarcodeDetectorFrameHandler

Version 1.4.0 (02 Feb 2021)​

  • πŸŽ‰ New:
    • Implemented an encrypted storage for the barcode images
  • 🐞 Bug fixes:
    • Fix CameraX view bug with contour detector mirroring in landscape for the front facing camera

Version 1.3.2 (15 Jan 2021)​

  • 🐞 Bug fixes:
    • Further fixes for the "double scan" issue with the RTU UI BarcodeScannerActivity

Version 1.3.1 (12 Jan 2021)​

  • 🐞 Bug fixes:
    • Fixed a concurrency issue (RejectedExecutionException) for the frame handling in CameraView
    • Fixed a double scan issue for BarcodeScannerActivity RTU screen
    • Fixed a ShutterButton animation

Version 1.3.0 (17 Dec 2020)​

  • πŸŽ‰ New:
    • Added Front Facing Camera support (BETA). Call setCameraModule(CameraModule.FRONT) in ScanbotCameraView or ScanbotCameraXView to enable it.
    • Added CAMERA_MODULE configuration parameter for RTU screens
    • Added setDetectorType configuration parameter for barcode scanner and related RTU UI screens. It allows disabling model-based detection which might be helpful to increase the performance in some cases
  • πŸš€ Improvements:
    • Improved detection of ITF barcodes
  • 🐞 Bug fixes:
    • The flash button on RTU UI screens is not shown anymore on devices without a flashlight
    • Fixed live detection that was not working on some devices with non-standard camera frame resolution
  • πŸš™ Under the hood:
    • Updated the version of CWAC Camera library to 0.6.40.

Version 1.2.2 (7 Dec 2020)​

  • 🐞 Bug fixes:
    • Fixed incorrect processing of the text part in DataMatrix barcodes with binary data
    • Fixed rare case of the QR-codes processing which might lead to a crash
    • Some redundant logs were removed

Version 1.2.1 (3 Dec 2020)​

  • πŸŽ‰ New:
    • BarcodeScannerActivity and BatchBarcodeScannerActivity now support a possibility to set a timeout via setAutoCancelTimeout method in seconds. In this case, you will get CANCELLATION_REASON_TIMEOUT = true as an extra for RESULT_CANCELED in activity result
  • πŸš€ Improvements:
    • Better recognition of rotated PDF417 codes

Version 1.2.0 (23 Nov 2020)​

  • πŸš€ Improvements:
    • Huge improvements in detection of barcodes of PDF417 type
  • 🐞 Bug fixes:
    • Fixed bug when RTU UI screens might lose their configuration or crash after going to a paused state
    • Fixed bug when BatchBarcodeScannerActivity was picking only the first barcode on each scanned frame
  • πŸš™ Under the hood:
    • Dagger library was updated to 2.25.2

Version 1.1.7 (29 Oct 2020)​

  • πŸŽ‰ New:
    • Added FinderPictureCallback that automatically crops the visible FinderOverlayView zone and fixes an orientation of the snapped image
    • Optical pinch-to-zoom feature for the CameraView and the digital zoom feature (see ZoomFinderOverlayView)
    • Consumer proguard rules are now integrated into the library
    • FormattedBarcodeDataMapper's DEFAULT implementation was removed. null is new default value for BatchBarcodeScannerActivity.newIntent method instead. See example.
  • πŸš€ Improvements:
    • Changed PictureCallback implementation - it is an abstract class that implements BasePictureCallback interface
    • Improved recognition of barcodes when scanning matrix barcodes from a short distance
    • Increased camera preview start speed
    • Improved recognition of damaged DataMatrix barcodes
  • 🐞 Bug fixes:
    • Added the "force fetch" mechanism for ScanbotBarcodeDetector ML blobs.
  • πŸš™ Under the hood:
    • Updated compile SDK of the library to 29

Version 1.1.6 (16 Sep 2020)​

  • πŸš€ Improvements:
    • Improved recognition of damaged DataMatrix barcodes
  • πŸš™ Under the hood:
    • Upgraded some libs to latest versions: OpenCV 4.4.0, Kotlin Standard Library 1.4, added OpenJPEG 2.3.1

Version 1.1.5 (20 Aug 2020)​

  • 🐞 Bug fixes:
    • Fixed hanging frame processing in CameraView after pausing if the orientation was not locked

Version 1.1.4 (14 Aug 2020)​

  • πŸŽ‰ New:
    • Added ability to scan multiple barcodes in a row with the new RTU UI Component BatchBarcodeScannerActivity
  • 🐞 Bug fixes:
    • Fixed a crash for barcodes with non-string raw data
    • Binary raw data for barcodes now filled correctly in BarcodeItem.rawBytes

Version 1.1.3 (16 Jul 2020)​

  • πŸš€ Improvements:
    • Improved barcode detection model
    • Improved handling of ink spread issues with Code128 barcodes
    • Improved barcode and QR code live detection especially for very dense codes

Version 1.1.2 (9 Jul 2020):​

  • πŸš€ Improvements:
    • Added new barcode format BarcodeFormat.MSI_PLESSEY
    • Minor bugfixes and improvements

Version 1.1.1 (8 Apr 2020):​

  • πŸš€ Improvements:
    • Updated ProGuard config
    • Improved detection from still images
    • Minor bugfixes and improvements

Version 1.1.0 (11 Mar 2020):​

  • πŸš€ Improvements:
    • Updated minimum Android API level to 21 (Android 5.0)
    • Updated ProGuard config
    • Minor bugfixes and improvements

Version 1.0.0 (31 Jan 2020):​

  • πŸŽ‰ First release.

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get your free Trial License

What do you think of this documentation?


On this page

Scroll to top