Skip to main content

Changelog | Xamarin Native Barcode Scanner SDK

Version 4.2.0 (16 Apr 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.
    • iOS:
      • Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
      • Added a new static property WidestAvailableBackFacingCamera in SBSDKCameraDevice which returns the widest available camera configuration.
      • Added a new static method SetupDefaultLicenseFailureHandlerWithCompletion in ScanbotSDKGlobal.
  • 🐞 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.
    • Android: Replaced the property EnableGS1Decoding of type bool with Gs1HandlingMode of type Gs1Handling in the BarcodeScannerAdditionalConfiguration class.
    • iOS: Replaced the property EnableGS1Decoding of type bool with Gs1Handling of type SBSDKGS1Handling in the SBSDKBarcodeAdditionalParameters class.
    • iOS: Renamed the delegate DidDetect(...) to DidDetectResults(...) in SBSDKUIBarcodeScannerViewControllerDelegate.
  • 🚙 Under the hood:
    • The native Scanbot iOS SDK upgraded to v4.2.2.
    • The native Scanbot Android SDK upgraded to v4.2.0.

Version 4.0.2 (1 Dec 2023)

  • 🚀 Improvements:
    • Added support for Android 13.
    • Nuget packages dependencies for Android were reduced and updated.
    • Please remove the Scanbot.NET.SDK.Dependencies or Scanbot.Xamarin.SDK.Dependencies nuget package, if you have them in your project. All dependencies are now included inside this package.

Version 4.0.1 (5 Oct 2023)

  • 🐞 Bug fixes:
    • iOS: Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
  • 🚙 Under the hood:
    • Updated the native iOS Scanbot Barcode Scanner SDK to 4.0.2 (cf. changelog).

Version 4.0.0 (22 Sept 2023)

  • 🎉 New:
    • Added support for the barcode type Micro QR Code.
    • Added barcode confirmation dialog feature in barcode scanning. It enables the user to configure a confirmation dialog with our barcode scanning feature.
    • Added ViewFinderEnabled property in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
    • Added Scan and Count of Barcodes feature. Refer to class BarcodeScanAndCountView for Android and class SBSDKBarcodeScanAndCountViewController for iOS to integrate it into your app.
    • iOS:
      • Added ExtensionFilter property in all barcode scanning APIs.
      • Added TrackingOverlayController property to SBSDKBarcodeScannerViewController.
      • Added functions to SBSDKDeviceInformation to get the total, used and unused disk space on the device.
  • 🚀 Improvements:
    • Better per-frame accuracy for QR code detection.
    • Support for inverted PDF-417 barcodes.
    • The barcode types Code 39 and Code 93 decode slightly faster.
  • 🐞 Bug fixes:
    • iOS:
      • 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 SBSDKUIBarcodesBatchScannerViewController.
    • Android:
      • 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.
  • ⚠️ Breaking Changes:
    • Removed the barcode type Unknown.
    • iOS:
      • Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0.
      • Renamed the property AcceptedMachineCodeTypes to AcceptedBarcodeTypes in SBSDKUIBarcodeScannerBehaviorConfiguration and SBSDKUIBarcodesBatchScannerBehaviorConfiguration.
      • The default zoom range of CameraZoomRange property was changed from (0.0 - 3.0) to (0.0 - 12.0).
      • Due to a Swift compiler naming collision, the class ScanbotSDK has been renamed to Scanbot.
      • Renamed the class ScanbotSDKUI to ScanbotUI for consistency.
      • Removed SelectionOverlayTextFor delegate method from SBSDKUIBarcodeScannerViewController.
      • Renamed SelectionOverlayEnabled to IsTrackingOverlayEnabled in SBSDKBarcodeScannerViewController.
      • Renamed SBSDKUIBarcodeSelectionOverlayConfiguration to SBSDKUIBarcodeTrackingOverlayConfiguration.
  • 🚙 Under the hood:

Version 3.6.0 (14 Jul 2023)

  • 🎉 New:
    • Introduced AutomaticSelectionEnabled property. When using Selection Overlay, you can now choose whether you want users to tap on the barcodes or if the barcodes should be selected automatically. See SelectionOverlayConfiguration on Android and SBSDKUIBarcodeSelectionOverlayConfiguration on iOS.
    • Introduced new Barcode Format: CODE_25. Previously, it was considered as type INDUSTRIAL_2OF5 without a checksum. We've now removed the INDUSTRIAL_2OF5 checksum option, and depending on a valid checksum, we either return INDUSTRIAL_2OF5 or CODE_25.
  • 🚀 Improvements:
    • Improved recognition of inverted barcodes.
    • Improved performance and reduced false-positive rate for stacked RSS barcodes.
    • Enhanced performance of DataMatrix and QR-codes.
    • Improved barcode scanning with new ML models.
    • Made substantial improvements to stacked RSS barcode scanning.
    • Optimized memory usage.
    • iOS:
      • Enhanced general speed and accuracy when detecting barcodes.
      • Improved recognition of stacked RSS Expanded barcodes.
      • All Classic-UI view controllers can now be instantiated from storyboards.
    • Android:
      • Added BarcodeItemViewPositionHandler that assists in adjusting the position of the barcode description view relative to the polygon contour.
      • Enhanced preview quality selection logic for ScanbotCameraXView.
      • Optimized the FinderOverlayView behavior when the UI container is dynamically resized (e.g., during keyboard events).
      • Added SetForceMaxSnappingQuality(enabled: bool) in ScanbotCameraXView to control whether the camera should force the maximum possible quality for the snapped picture. This could significantly slow snapping speed and result in bigger images. Defaults to false.
      • Added SetSnappingAutoAdjustment(enabled: bool) in ScanbotCameraXView to control whether the camera should apply image post-processing (e.g., low-light mode switching, HDR mode, face retouching, etc.). The implementation of post-processing depends on the vendor's Camera API. Defaults to false.
      • The raw string is now returned for RSS Expanded barcodes that don't contain a GS1 string.
      • Added CodeDensity parameter to BarcodeScannerAdditionalConfigBuilder.
  • 🐞 Bug fixes:
    • Fixed a crash in the barcode detector.
    • Android:
      • Fixed the ScanbotCameraXView instantiation error in the Layout Editor.
      • Fixed the CameraManager memory leak in ScanbotCameraXView.
      • Fixed NPE in ScanbotCameraXView when the StartPreview() function is called while ScanbotCameraXView was detached.
      • Fixed ScanbotCameraXView not working after reattaching to a window.
      • Fixed a visual glitch with ScanbotCameraXView on Xiaomi devices that occurred before the preview started.
      • Fixed a bug where ScanbotCameraXView sometimes threw a RejectedExecutionException after the camera stopped.
      • Fixed Scanbot camera views not resolving Context correctly when used in an Activity/Fragment with Hilt's @AndroidEntryPoint annotation.
      • Fixed handling of Scanbot RTU-UI scanners when the app is terminated in the background.
    • iOS:
      • Fixed a crash when navigating to and from scanner view controllers.
      • Fixed a potential crash when the app using ScanbotSDK is suspended by the OS.
      • Fixed a crash when logging URLs with spaces.
      • Fixed a rare crash with the application state observer.
      • Fixed detection of a few false-positive RSS Expanded codes in live mode.
      • Fixed unexpected behavior of the barcode scanner when passing SBSDKBarcodeTypeUnknown as an accepted barcode type.
      • Fixed a bug in all Classic UI and RTU-UI components where the RecognitionEnabled property might not have worked as expected.
  • ⚠️ Breaking changes:
    • iOS:
      • Removed DidCaptureBarcodeImage from SBSDKUIBarcodeScannerViewControllerDelegate. The barcode image is now returned through BarcodeImage property in SBSDKBarcodeScannerResult.
      • Refactored SBSDKBarcodeScannerViewControllerDelegate. Please check all your classes that conform to SBSDKBarcodeScannerViewControllerDelegate.
    • Android: The direct use of BarcodeDetectorResultHandler is no longer supported. Use BarcodeDetectorResultHandlerWrapper instead and attach it with the newly introduced wrapper methods:
      • For ScanbotCameraXView: ScanbotCameraViewWrapper.InitDetectionBehavior(cameraView, barcodeDetector, resultHandler, detectionInterval)
      • For BarcodeScannerView: BarcodeScannerViewWrapper.InitDetectionBehavior(barcodeScannerView, barcodeDetector, resultDelegate, callback)
  • 🚙 Under the hood:

Version 3.3.0 (30 Nov 2022)

  • 🎉 New:
    • Added support for IATA 2 of 5 and Industrial 2 of 5 barcode formats. Please note that they are disabled by default.
    • Added BarcodePolygonsView in Android and SBSDKPolygon in iOS, which allows visualization of barcode contours when using classical component.
    • Added Selection Overlay Configuration for Barcode Scanner and Batch Barcode Scanner for showing barcode detail overlays while scanning.
    • Added support for JSON in all RTU-UI configurations. Check the under the hood SDK changelog for more details.
    • Added new parameter CodeDensity to Barcode Scanner additional configuration.
    • iOS: Added new class SBSDKSoundController to play a default or custom sound on different actions, e.g. successful code detection.
    • iOS: Added new method PlayBleepSound to SBSDKBaseScannerViewController to play a default bleep sound.
    • Android: Added BleepResId: Int and BleepUri: Uri parameters to the SoundController class. By default the SDK specific sound will be played.
    • Android: 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!
    • iOS: Added new parameter FlashButtonHidden to RTU-UI screens.
    • iOS: Added a new base scanner view controller SBSDKBaseScannerViewController which provides a lot of base functionality like zooming, view finder, energy management, focus locking, flash light, flash animation, automatic interruption of detection on disappearance or when presenting view controllers and more.
    • iOS: Added new function FilterResults to SBSDKBarcodeScannerViewControllerDelegate.
    • iOS: Added new property DefaultLicenseFailureHandler of type SBSDKLicenseFailureHandler in interface ScanbotSDK.
    • iOS: Added property ZoomFactorDidChangeHandler to SBSDKBaseScannerViewController to notify you when the camera zoom factor has changed.
    • iOS: Added property CameraZoomFactorAbsolute to SBSDKBaseScannerViewController which returns the absolute camera's video zoom factor.
    • iOS: Added functions FreezeCamera and UnfreezeCamera to SBSDKBaseScannerViewController, SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
    • Android: New properties InitialScanDelayMs and DelayAfterScanMs in BarcodeScannerConfiguration allow delaying the initial scan and/or pausing the preview after scanning the barcode.
    • Android: With the new BarcodeScannerView Classical component, the integration of barcode scanning with a Custom UI is now even easier!
  • 🚀 Improvements:
    • Android: Improved crops and contours for detected barcodes.
    • Android: FinderInsets allows setting the finder edge padding from the camera preview edges.
    • Android: 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.
    • iOS: Improved 1D barcode recognition.
  • 🐞 Bug fixes:
    • Various bug fixes for under the hood Android and iOS SDKs; check the native SDK changelogs for further information.
  • ⚠️ Breaking changes:
    • iOS: The SBSDKCameraSession method StartSession is now asynchronous and has a completion handler.
    • iOS: Please refer to the under the hood iOS Barcode Scanner SDK for breaking changes in SBSDKBarcodeScannerViewController.
    • iOS: Replaced SBSDKFinderLayer with SBSDKFinderView.
    • iOS: Renamed SBSDKUIVideoContentMode to SBSDKVideoContentMode.
    • iOS: Removed AccumulatedFramesCount from SBSDKBarcodeScanner.
    • iOS: Removed existing methods CleanUpStorage and SetBaseStorageUrl from SBSDKUIBarcodeImageStorage.
    • iOS: Added one more parameter in SBSDKUIBarcodeScannerUIConfiguration and SBSDKUIBarcodesBatchScannerConfiguration constructors, which is of type SBSDKUIBarcodeSelectionOverlayConfiguration.
    • Removed parameters ImageOrientationLock and AllowedInterfaceOrientations from all RTU-UI configurations. These have been replaced by the combined property OrientationLockMode.
    • Please refer to the under the hood SDKs changelogs for more breaking changes.
  • 🚙 Under the hood:
    • Android: Updated compileSdk version to 31.
    • Android: Improved memory management for Barcode Scanner.
    • Updated the native Android Scanbot Barcode Scanner SDK to 3.3.1 (cf. changelog).
    • Updated the native iOS Scanbot Barcode Scanner SDK to 3.3.0 (cf. changelog).
    • Updated some third-party libraries.

Version 3.2.1 (4 Nov 2022)

  • 🐞 Bug fixes:
    • Android: Fixed memory leaks caused by repetitively opening the scanners over an extended period of time
  • 🚀 Improvements:
    • Android: Barcode and Batch Barcode scanner now launch faster
    • Android: Improved memory usage and overall performance
  • ⚠️ Breaking changes:
    • In order to initialize the Scanbot SDK, you now have to pass the MainActivity as an argument to the Register method of the DependencyManager: ScanbotBarcodeSDK.Forms.Droid.DependencyManager.Register(this)

Version 3.2.0 (30 May 2022)

  • 🎉 New:
    • Added support for CameraX on Android; you can now use ScanbotCameraXView classical component, or you can set UseCameraXRtuUi in the SDK initialization options to use CameraX in the Barcode Scanner and Batch Barcode Scanner.
    • Added support for the GS1 barcode document format, see SBSDKGS1DocumentFormat (iOS) and Gs1Document (Android).
    • Added Barcode Document Parser, which parses any given string for supported barcode document types; see SBSDKBarcodeDocumentParser (iOS) and BarcodeDocumentParser (Android).
  • 🐞 Bug fixes:
    • iOS: Fixed a bug with wrong camera preview orientation when starting SBSDKBarcodeScannerViewController and SBSDKUIBarcodeScannerViewController in landscape orientation.
    • Android: Fixed an incorrectly thrown FileAccessException in ScanbotBarcodeScannerSDKInitializer when cleaning deprecated blob files.
  • ⚠️ Breaking changes:
    • Renamed Disability Certificate to Medical Certificate:
      • iOS: SBSDKDisabilityCertificateDocumentFormat has been renamed to SBSDKMedicalCertificateDocumentFormat
      • Android: DisabilityCertificateDocument has been renamed to MedicalCertificateDocument
  • 🚀 Improvements:
    • Huge improvement on the speed and accuracy of barcodes recognition.
    • Android: Native libraries size decreased by more than 20%
    • iOS: Improved barcode image cropping.
  • 🚙 Under the hood:

Version 3.1.0 (9 Mar 2022)

  • 🎉 New:
    • Document Format filters in Batch Barcode Scanner! Now you can choose to limit the barcode scanning to one or more specific document types.
    • Added Swiss QR barcode document format.
  • 🐞 Bug fixes:
    • Fixed a crash when scanning barcodes on AAMVA document types.
    • Fixed some RTU configuration properties that were not mapped correctly in both iOS and Android platforms.
    • Various bug fixes under the hood in Android and iOS SDKs.
  • ⚠️ Breaking changes:
    • IMPORTANT: Removed AllowedInterfaceOrientations and OrientationLockMode from all RTU-UI configurations. Use InterfaceOrientation instead (Portrait, Landscape or All)
  • 🚀 Improvements:
    • Fixed AllowedInterfaceOrientations ambiguous behavior in RTU-UI configurations
    • General improvement of performance and memory usage
    • Improved code documentation
    • Removed ineffective parameter RecognitionEnabled from Batch Barcode Scanner configuration
  • 🚙 Under the hood:
    • Updated the native Android Scanbot Barcode Scanner SDK to 3.1.0
    • Updated the native iOS Scanbot Barcode Scanner SDK to 3.1.1

Version 3.0.0 (16 Jul 2021)

  • 🎉 New:
    • Brand new "Next Generation" machine-learning-based barcode scanning engine with improved reliability and much faster performance
    • API changes for the new barcode engine: added EngineMode property on barcode scanning APIs to switch between the legacy barcode engine and the new Next Generation barcode engine. By default, the new engine is used.
    • Re-introduced MSI Plessey barcode recognition (disabled by default)
  • ⚠️ Breaking changes:
    • Droid: Upgraded target framework to Android 11
  • 🚙 Under the hood:
    • Updated the native Android Scanbot Barcode Scanner SDK to 3.0.0
    • Updated the native iOS Scanbot Barcode Scanner SDK to 3.0.0

Version 2.0.0 (18 Nov 2020)

  • 🚀 Improvements:
    • Improved barcode recognition for matrix codes (QR code and Data Matrix code)
  • ⚠️ Breaking changes:
    • Android: Dropped legacy SupportLibs, built for AndroidX. To migrate your project please check out the documentation from Microsoft
    • Android: The interface IPictureCallback was replaced by an abstract class PictureCallback that implements the IBasePictureCallback interface. For adjustments see our example app on GitHub.
  • 🚙 Under the hood:
    • Android: Upgraded the native Scanbot Barcode Scanner SDK to v1.1.7
  • 👉 Please also see:
    • The Changelog of the native Scanbot Barcode Scanner SDK for Android

Version 1.1.0 (6 Nov 2020)

  • 🚀 Improvements:
    • Improved barcode recognition for matrix codes (QR code and Data Matrix code)
  • ⚠️ Breaking changes:
    • iOS: Dropped support for iOS 9 and iOS 10!
  • 🚙 Under the hood:
    • iOS: Upgraded the native iOS Scanbot Barcode SDK to v1.7.1
  • 👉 Please also see:
    • The Changelog of the native iOS Scanbot Barcode SDK

Version 1.0.2 (03 Aug 2020)

  • 🚙 Under the hood:
    • Android: Added relevant Xamarin.Android.Support libraries as dependencies
    • iOS: Upgraded the native iOS Scanbot Barcode SDK to v1.5.1

Version 1.0.0 (03 Mar 2020)

  • 🎉 First release

Want to scan longer than one minute?

Generate your free "no-strings-attached" Trial License and properly test the Scanbot SDK.

Get your free Trial License

What do you think of this documentation?