Skip to main content

Changelog | .NET Barcode Scanner

tip

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

.NET - Version 6.1.0 (29 Jan 2025)

Android

  • 🎉 New:
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
    • Added properties AustraliaPostCustomerFormat, UseIata2Of5Checksum and UseCode11Checksum to BarcodeScannerAdditionalConfig and BarcodeRecognizerConfiguration.
    • Added new property AddAdditionalQuietZone to BarcodeScannerAdditionalConfig.
    • Added a new property AllowEmptySubmission in MultipleScanningMode to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
    • Added a new predefined collection of barcodes, BarcodeFormat.POSTAL, which includes barcodes used in the postal industry.
    • Added AustraliaPostCustomerFormat enum to represent formats of the barcode data for the Australian Post customer barcode.
  • 🚀 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.
    • Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec barcodes.
    • Improved GS1 string handling with new modes for decoding and validation. See Gs1Handling.
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The Barcode Scanner now supports transposed (mirrored/flipped) Aztec barcodes.
  • 🐞 Bug fixes:
    • Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.
    • 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, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
    • Minor fixes for the Barcode Scanner appearance in RTU UI v2 to make it consistent with its iOS counterpart.
    • Fixed R8 obfuscation config for SDK logging classes.
  • ⚠️ Breaking Changes:
    • Removed enum BarcodeDensity.
      • Removed property CodeDensity from BarcodeAdditionalParameters.
    • Removed enum values Validate and Decode from GS1Handling and replaced them with DecodeStructure, DecodeFull, ValidateStructure and ValidateFull.
    • 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:

iOS

  • 🎉 New:
    • Added a new property HardwareButtonsEnabled that enables snapping from the hardware volume buttons and the new hardware camera control button to SBSDKBarcodeScanAndCountViewController, available on iOS 17.2 and later.
    • Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
    • Added a new property AllowEmptySubmission to SBSDKUI2MultipleScanningMode.
    • Added new property AddAdditionalQuietZone to SBSDKBarcodeAdditionalParameters.
    • Added new property PostalTypes to SBSDKBarcodeType.
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
    • Added properties AustraliaPostCustomerFormat, UseIATA2OF5Checksum and UseCode11Checksum to SBSDKBarcodeAdditionalParameters and SBSDKUI2BarcodeRecognizerConfiguration.
  • 🚀 Improvements:
    • The AR-overlay in SBSDKUI2FindAndPickScanningMode is now visible by default.
    • For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
    • Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
    • Improved GS1 string handling with new modes for decoding and validation. See SBSDKGS1Handling.
    • Added the ability to display the scanned barcode's image in the Find and Pick use case of SBSDKUI2BarcodeScannerViewController by specifying SBSDKUI2ExpectedBarcode.BarcodeImageKey for the expected barcode's Image property.
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The Barcode Scanner now supports transposed (mirrored/flipped) Aztec barcodes.
  • 🐞 Bug fixes:
    • Fixed a crash in scanners when setting the same minZoom and maxZoom in SBSDKZoomRange.
    • Fixed KANJI mode for QR codes.
    • Fixed a bug with wrong raw bytes returned for some 2D barcode types.
    • Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes were displayed along with their non-extended versions.
    • Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
    • Fixed a UI issue in the RTU-UI v2 Find and Pick scanner in button sheet mode where the counter badge was not visible.
    • Fixed a bug that did not mirror the front camera as expected.
    • Fixed a bug in SBSDKUI2SingleScanDialogModelProvider where the default displayed texts were not correct.
    • Fixed a UI issue on the RTU-UI v2 barcode sheet screen where the subtitle label was being vertically cut off.
    • Fixed a UI issue on the RTU-UI v2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
    • Fixed a bug in the Find and Pick use case of SBSDKUI2BarcodeScannerViewController that never showed the expected barcode's title, but always the barcode value.
    • Fixed a bug in ScanbotColor where setting isArgb to true, resulted in a wrong color.
  • ⚠️ Breaking Changes:
    • Replaced the buggy initializer init?(json: Data) in SBSDKUI2BarcodeScannerConfiguration by the static function SBSDKUI2BarcodeScannerConfiguration.FromJsonWithJson.
    • Removed enum SBSDKBarcodeDensity.
    • Removed property CodeDensity from SBSDKBarcodeAdditionalParameters.
    • Removed enum values Validate and Decode from SBSDKGS1Handling and replaced them by DecodeStructure, DecodeFull, ValidateStructure and ValidateFull.
  • 🚙 Under the hood:

.NET - Version 5.1.0 (26 Jun 2024)

Android

  • 🎉 New:
    • Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. See Ready-to-Use UI for documentation and various use cases.
    • Added support for new barcode format BarcodeFormat.MicroPdf417.
    • Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
  • 🚀 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.Pdf417, 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.
    • Fixed SoundController crash on Android API <= 23.
  • ⚠️ Breaking Changes:
  • 🚙 Under the hood:
    • Updated the native SDK to Android Barcode SDK 5.1.0
    • Updated 3rd-party libraries:
      • libjpeg-turbo to 2.1.5.1
      • libpng to 1.6.40
      • libtiff to 4.6.0
    • Added third-party library libzueci version 1.0.0.
    • Extracted parts of ScanbotBarcodeScannerSDK API to the ILicensableSdk and IBarcodeScanningSdk 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.
    • Class SoundController was renamed to SoundControllerImpl and interface SoundController was extracted.

iOS

  • 🎉 New:
  • 🚀 Improvements:
    • IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
    • Improved speed and image quality of still image capturing.
    • Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
    • Added support of haptic feedback on capable devices.
    • SBSDKPDFPagesExtractor functions now create the output directory if it doesn't exist yet.
    • Added support for structured logging (OSLog) to the SDK (iOS 14+).
  • 🐞 Bug fixes:
    • Changed privacy manifest to comply with the latest Apple specs.
    • Fixes a bug with the asynchronous functions of SBSDKPDFPagesExtractor which returned an empty array of image URLs.
    • Fixes a problem that slowed down still image capturing on some older iOS devices.
    • Fixed a critical bug in the camera session causing still images to be captured at a lower than expected resolution.
  • ⚠️ Breaking Changes:
  • 🚙 Under the hood:
    • Updated the native SDK to iOS Barcode SDK 5.1.0
    • Added third-party library libzueci version 1.0.0
    • Refactored all public SDK code to Swift.

.NET - Version 4.2.0 (6 Mar 2024)

  • 🎉 New:
    • Added support for several new barcode formats including:
      • AustraliaPost
      • DatabarLimited
      • Gs1Composite
      • JapanPost
      • RoyalMail
      • RoyalTntPost
      • UspsIntelligentMail
    • Enhanced control over how to handle GS1 messages in barcodes.
    • Added CameraZoomRange in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
  • 🐞 Bug fixes:
    • Android:
      • Optimized camera functionalities in ScanbotCameraXView.
      • Modified camera zoom functionalities to switch to zoom ratio.
    • iOS:
      • Fixed UI issues in SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
  • ⚠️ Breaking changes:
    • GS1 codes are now handled differently for various barcode types. Using the default option GS1Handling.Parse will give the same result as before for all barcode types, except for BarcodeFormat.RssExpanded. Previously, for RssExpanded, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, choose the option GS1Handling.Decode.
    • iOS:
      • The method DidDetect in the BarcodeResultReceiver class has been renamed to DidDetectResults, and its signature now matches the updated method signature in the SBSDKUIBarcodeScannerViewControllerDelegate interface.
  • 🚙 Under the hood:
    • iOS:
      • Added new methods in SBSDKCameraDevice class for camera and licensing functionalities.
    • The native Scanbot iOS SDK upgraded to v4.2.1.
    • The native Scanbot Android SDK upgraded to v4.2.0.

.NET - Version 4.0.0 (9 Jan 2024)

  • 🎉 New:
    • iOS:
      • Added new Classic UI component SBSDKBarcodeScanAndCountViewController which enables you to count barcodes from multiple scans using the shutter button.
      • Added property ExtensionFilter to all barcode scanning APIs (SBSDKBarcodeScanner, SBSDKBarcodeScannerViewController, SBSDKBarcodeScanAndCountViewController, SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration).
      • Added property Extension to SBSDKBarcodeScannerResult.
      • Added TrackingOverlayController property to SBSDKBarcodeScannerViewController.
      • Introduced new classes and protocols to manage barcode tracking overlay:
        • SBSDKBarcodeTrackingOverlayController: Provides a customizable user interface for displaying barcodes and supports interaction with them.
        • SBSDKBarcodeTrackingOverlayConfiguration: Represents the configuration options for a SBSDKBarcodeTrackingOverlayController.
        • SBSDKBarcodeTrackedViewTextStyle: Represents the style and kind of text rendered below a barcode.
        • SBSDKBarcodeTrackedViewPolygonStyle: Represents the style of the polygon rendered around a barcode.
        • SBSDKTrackedBarcodeInfoView: A protocol that defines the methods and properties required for a custom tracking view.
      • Added functions to SBSDKDeviceInformation to get the total, used and unused disk space on the device.
      • Added new method widestAvailableBackFacingCamera to SBSDKCameraDevice.
      • Added new method setupDefaultLicenseFailureHandlerWithCompletion: to the Scanbot class.
  • 🚀 Improvements:
    • Android:
      • 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.
      • Fixed declaration of attributes polygonStrokeDeclinedColor and polygonFillDeclinedColor.
    • iOS:
      • RTU-UI configurations can now be initialized with partial/incomplete JSON data by internally merging the partial data into the configurations default values.
    • Improved the speed of barcode recognition for most barcode symbologies.
  • 🐞 Bug fixes:
    • Android:
      • 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.
    • iOS:
      • Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
      • Fixed a crash when denying camera permission.
  • ⚠️ Breaking changes:
    • Android:
      • Removed methods from BarcodePolygonsView and BarcodeScannerView.selectionOverlayController related to polygon and text view appearance. E.g. setStrokeColor etc. Please use BarcodeAppearanceDelegate instead!
      • Removed UNKNOWN barcode type from the API as it is applicable only for internal usage.
    • iOS:
      • Due to a Swift compiler naming collision, the class ScanbotSDK has been renamed to ScanbotSDKGlobal.
      • Renamed the class ScanbotSDKUI to ScanbotUI.
      • Removed barcode type SBSDKBarcodeTypeUnknown.
      • Removed SelectionOverlayTextFor from SBSDKUIBarcodeScannerViewController.
      • Renamed SelectionOverlayEnabled to IsTrackingOverlayEnabled in SBSDKBarcodeScannerViewController.
      • Renamed SBSDKUIBarcodeSelectionOverlayConfiguration to SBSDKUIBarcodeTrackingOverlayConfiguration.
      • Renamed SelectionOverlayConfiguration to trackingOverlayConfiguration in SBSDKUIBarcodeScannerConfiguration and SBSDKUIBarcodesBatchScannerConfiguration.
      • Renamed PhotoQualityPriorization to PhotoQualityPrioritization everywhere in the SDK.
  • 🚙 Under the hood:
    • Removed reference to Scanbot.NET.SDK.Dependencies package for Android. Instead, the needed dependencies are referenced directly.
    • The native Scanbot Android SDK upgraded to v4.0.1.
    • The native Scanbot iOS SDK upgraded to v4.0.3.

.NET - Version 3.7.0 (5 Oct 2023)

  • 🎉 New:
    • Both Android and iOS:.
      • Added support for the Micro QR barcode type.
      • Added view finder flag for barcode scanners (see more details below).
    • Android:
      • Added new function SetViewFinderEnabled to:
        • IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
        • IO.Scanbot.Sdk.UI.View.Barcode.Batch.Configuration.BatchBarcodeScannerConfiguration
      • Introduced a scanned barcode confirmation dialog in IO.Scanbot.Sdk.UI.Barcode_scanner.View.Barcode.BarcodeScannerActivity RTU screen:
        • Added SetConfirmationDialogConfiguration to IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration for modifying dialog UI.
      • Added Scan and Count of Barcodes feature.
        • Use IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountView to integrate it into your app.
    • iOS:
      • Added new property ViewFinderEnabled to:
        • ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
        • ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
      • Added new properties ConfirmationDialogTitle and ConfirmationDialogMessage to
        • ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration.
      • Added new function FlipHorizontally to ScanbotBarcodeSDK.iOS.SBSDKPolygon.
      • Added new property IsMirrored to ScanbotBarcodeSDK.iOS.SBSDKCameraDevice.
  • 🚀 Improvements:
    • Both Android and iOS:
      • Improved accuracy and detection speed of several barcode types, such as QR_CODE, Code39, and Code93.
      • Added support for inverted PDF-417 barcodes.
    • iOS:
      • Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
        • All Classic UI components
        • All RTU-UI components
        • The ScanbotBarcodeSDK.iOS.SBSDKZoomRange class
      • Support for generic documents in the MRZ recognizer.
  • 🐞 Bug fixes:
    • Android:
      • Fixed a crash within the barcode detector.
      • Fixed detection of several RSS_EXPANDED false-positives in live mode.
      • Fixed a bug causing incorrect (mirrored) preview when CameraModule.Front is set up for IO.Scanbot.Sdk.UI.Camera.ScanbotCameraXView.
    • iOS:
      • Fixed the detection of a few false positive RSS Expanded codes in live mode.
      • Fixed an unexpected behavior of the barcode scanner when passing ScanbotBarcodeSDK.iOS.SBSDKBarcodeType.Unknown as accepted barcode type.
      • Fixed a bug in all Classic UI and RTU-UI components where the RecognitionEnabled property might not have worked as intended.
      • Fixed a bug where automaticSelectionEnabled was not working properly in ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerViewController.
      • Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
      • Fixed a crash when denying camera permission.
  • ⚠️ Breaking changes:
    • iOS:
      • Several delegate method names were renamed, such as:
        • ScanbotBarcodeSDK.iOS.SBSDKUIViewControllerDelegate:
          • ViewControllerShouldCancel to ShouldCancel.
          • ViewControllerShouldFinish to ShouldFinish.
      • Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
      • Removed ScanbotBarcodeSDK.iOS.SBSDKUIMachineCodesCollection class.
      • Renamed the property AcceptedMachineCodeTypes to AcceptedBarcodeTypes in:
        • ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
        • ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
  • 🚙 Under the hood:
    • The native Scanbot Android SDK upgraded to v3.7.0.
    • The native Scanbot iOS SDK upgraded to v3.7.0.

NET - Version 3.6.0 (20 July 2023)

  • 🎉 First release of the ScanbotBarcodeSDK.NET NuGet package for Native iOS and Android APIs.
  • Provides Ready-To-Use UI Components - a set of easy to integrate Native wrappers of .NET based on iOS and Android native components for the most common tasks in Scanbot SDK:
    • Barcode & QR code scanner
    • Batch Barcode scanner
  • Provides additional SDK features based on image picked from the device photos application:
    • Detect Barcodes on Image
  • New unified Scanbot SDK API:
    • Idiomatic asynchronous design
  • Example App demonstrating the new functionality: scanbot-barcode-sdk-maui-example

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?