Changelog | Xamarin Native Barcode Scanner SDK
Version 4.2.0 (16 Apr 2024)
- 🚀 New:
- Added support for several new barcode formats including:
AustraliaPostDatabarLimitedGs1CompositeJapanPostRoyalMailRoyalTntPostUspsIntelligentMail
- Enhanced control over how to handle GS1 messages in barcodes.
- Added
CameraZoomRangeinBarcodeScannerConfigurationandBatchBarcodeScannerConfiguration.
- iOS:
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
- Added a new static property
WidestAvailableBackFacingCamerainSBSDKCameraDevicewhich returns the widest available camera configuration. - Added a new static method
SetupDefaultLicenseFailureHandlerWithCompletioninScanbotSDKGlobal.
- Added support for several new barcode formats including:
- 🐞 Bug fixes:
- Android:
- Optimized camera functionalities in
ScanbotCameraXView. - Modified camera zoom functionalities to switch to zoom ratio.
- Optimized camera functionalities in
- iOS:
- Fixed UI issues in
SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController.
- Fixed UI issues in
- Android:
- ⚠️ Breaking changes:
- GS1 codes are now handled differently for various barcode types. Using the default option
GS1Handling.Parsewill give the same result as before for all barcode types, except forBarcodeFormat.RssExpanded. Previously, forRssExpanded, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, choose the optionGS1Handling.Decode. - Android: Replaced the property
EnableGS1Decodingof typeboolwithGs1HandlingModeof typeGs1Handlingin theBarcodeScannerAdditionalConfigurationclass. - iOS: Replaced the property
EnableGS1Decodingof typeboolwithGs1Handlingof typeSBSDKGS1Handlingin theSBSDKBarcodeAdditionalParametersclass. - iOS: Renamed the delegate
DidDetect(...)toDidDetectResults(...)inSBSDKUIBarcodeScannerViewControllerDelegate.
- GS1 codes are now handled differently for various barcode types. Using the default option
- 🚙 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.DependenciesorScanbot.Xamarin.SDK.Dependenciesnuget 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
ViewFinderEnabledproperty inBarcodeScannerConfigurationandBatchBarcodeScannerConfiguration. - Added Scan and Count of Barcodes feature. Refer to class
BarcodeScanAndCountViewforAndroidand classSBSDKBarcodeScanAndCountViewControllerforiOSto integrate it into your app. - iOS:
- Added
ExtensionFilterproperty in all barcode scanning APIs. - Added
TrackingOverlayControllerproperty toSBSDKBarcodeScannerViewController. - Added functions to
SBSDKDeviceInformationto get the total, used and unused disk space on the device.
- Added
- 🚀 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
recognitionEnabledproperty might not have worked as intended. - Fixed a bug where
automaticSelectionEnabledwas not working properly inSBSDKUIBarcodesBatchScannerViewController.
- Fixed a bug in all Classic UI and RTU-UI components where the
- Android:
- Fixed the detection of a few false positive RSS_EXPANDED barcodes in live mode.
- Fixed a bug with incorrect (mirrored) preview when
CameraModule.FRONTis set up forScanbotCameraXView.
- iOS:
- ⚠️ Breaking Changes:
- Removed the barcode type
Unknown. - iOS:
- Removed support for iOS
11.xand12.x. The minimum deployment target to use ScanbotSDK in your app is iOS13.0. - Renamed the property
AcceptedMachineCodeTypestoAcceptedBarcodeTypesinSBSDKUIBarcodeScannerBehaviorConfigurationandSBSDKUIBarcodesBatchScannerBehaviorConfiguration. - The default zoom range of
CameraZoomRangeproperty was changed from (0.0 - 3.0) to (0.0 - 12.0). - Due to a Swift compiler naming collision, the class
ScanbotSDKhas been renamed toScanbot. - Renamed the class
ScanbotSDKUItoScanbotUIfor consistency. - Removed
SelectionOverlayTextFordelegate method fromSBSDKUIBarcodeScannerViewController. - Renamed
SelectionOverlayEnabledtoIsTrackingOverlayEnabledinSBSDKBarcodeScannerViewController. - Renamed
SBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeTrackingOverlayConfiguration.
- Removed support for iOS
- Removed the barcode type
- 🚙 Under the hood:
- Updated the native Android Scanbot Barcode Scanner SDK to 4.0.0 (cf. changelog).
- Updated the native iOS Scanbot Barcode Scanner SDK to 4.0.0 (cf. changelog).
- Updated certain third-party libraries.
Version 3.6.0 (14 Jul 2023)
- 🎉 New:
- Introduced
AutomaticSelectionEnabledproperty. 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. SeeSelectionOverlayConfigurationon Android andSBSDKUIBarcodeSelectionOverlayConfigurationon iOS. - Introduced new Barcode Format:
CODE_25. Previously, it was considered as typeINDUSTRIAL_2OF5without a checksum. We've now removed theINDUSTRIAL_2OF5checksum option, and depending on a valid checksum, we either returnINDUSTRIAL_2OF5orCODE_25.
- Introduced
- 🚀 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
BarcodeItemViewPositionHandlerthat assists in adjusting the position of the barcode description view relative to the polygon contour. - Enhanced preview quality selection logic for
ScanbotCameraXView. - Optimized the
FinderOverlayViewbehavior 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 tofalse. - 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 tofalse. - The raw string is now returned for RSS Expanded barcodes that don't contain a GS1 string.
- Added CodeDensity parameter to
BarcodeScannerAdditionalConfigBuilder.
- Added
- 🐞 Bug fixes:
- Fixed a crash in the barcode detector.
- Android:
- Fixed the
ScanbotCameraXViewinstantiation error in the Layout Editor. - Fixed the
CameraManagermemory leak inScanbotCameraXView. - Fixed NPE in
ScanbotCameraXViewwhen theStartPreview()function is called whileScanbotCameraXViewwas detached. - Fixed
ScanbotCameraXViewnot working after reattaching to a window. - Fixed a visual glitch with
ScanbotCameraXViewon Xiaomi devices that occurred before the preview started. - Fixed a bug where
ScanbotCameraXViewsometimes threw aRejectedExecutionExceptionafter 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.
- Fixed the
- 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
SBSDKBarcodeTypeUnknownas an accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
RecognitionEnabledproperty might not have worked as expected.
- ⚠️ Breaking changes:
- iOS:
- Removed
DidCaptureBarcodeImagefromSBSDKUIBarcodeScannerViewControllerDelegate. The barcode image is now returned throughBarcodeImageproperty inSBSDKBarcodeScannerResult. - Refactored
SBSDKBarcodeScannerViewControllerDelegate. Please check all your classes that conform toSBSDKBarcodeScannerViewControllerDelegate.
- Removed
- Android: The direct use of
BarcodeDetectorResultHandleris no longer supported. UseBarcodeDetectorResultHandlerWrapperinstead 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)
- For ScanbotCameraXView:
- iOS:
- 🚙 Under the hood:
- Updated the native Android Scanbot Barcode Scanner SDK to 3.6.0 (cf. changelog).
- Updated the native iOS Scanbot Barcode Scanner SDK to 3.6.0 (cf. changelog).
- Updated some third-party libraries.
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
BarcodePolygonsViewin Android andSBSDKPolygonin 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
CodeDensityto Barcode Scanner additional configuration. - iOS: Added new class
SBSDKSoundControllerto play a default or custom sound on different actions, e.g. successful code detection. - iOS: Added new method
PlayBleepSoundtoSBSDKBaseScannerViewControllerto play a default bleep sound. - Android: Added
BleepResId: IntandBleepUri: Uriparameters to theSoundControllerclass. 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.VIBRATEpermission is required! - iOS: Added new parameter
FlashButtonHiddento RTU-UI screens. - iOS: Added a new base scanner view controller
SBSDKBaseScannerViewControllerwhich 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
FilterResultstoSBSDKBarcodeScannerViewControllerDelegate. - iOS: Added new property
DefaultLicenseFailureHandlerof typeSBSDKLicenseFailureHandlerin interfaceScanbotSDK. - iOS: Added property
ZoomFactorDidChangeHandlertoSBSDKBaseScannerViewControllerto notify you when the camera zoom factor has changed. - iOS: Added property
CameraZoomFactorAbsolutetoSBSDKBaseScannerViewControllerwhich returns the absolute camera's video zoom factor. - iOS: Added functions
FreezeCameraandUnfreezeCameratoSBSDKBaseScannerViewController,SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController. - Android: New properties
InitialScanDelayMsandDelayAfterScanMsinBarcodeScannerConfigurationallow delaying the initial scan and/or pausing the preview after scanning the barcode. - Android: With the new
BarcodeScannerViewClassical component, the integration of barcode scanning with a Custom UI is now even easier!
- 🚀 Improvements:
- Android: Improved crops and contours for detected barcodes.
- Android:
FinderInsetsallows setting the finder edge padding from the camera preview edges. - Android:
SafeAreaInsetscan 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
SBSDKCameraSessionmethodStartSessionis 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
SBSDKFinderLayerwithSBSDKFinderView. - iOS: Renamed
SBSDKUIVideoContentModetoSBSDKVideoContentMode. - iOS: Removed
AccumulatedFramesCountfromSBSDKBarcodeScanner. - iOS: Removed existing methods
CleanUpStorageandSetBaseStorageUrlfromSBSDKUIBarcodeImageStorage. - iOS: Added one more parameter in
SBSDKUIBarcodeScannerUIConfigurationandSBSDKUIBarcodesBatchScannerConfigurationconstructors, which is of typeSBSDKUIBarcodeSelectionOverlayConfiguration. - Removed parameters
ImageOrientationLockandAllowedInterfaceOrientationsfrom all RTU-UI configurations. These have been replaced by the combined propertyOrientationLockMode. - Please refer to the under the hood SDKs changelogs for more breaking changes.
- iOS: The
- 🚙 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.
- Updated the native iOS Scanbot Barcode Scanner SDK to 3.3.0.
- 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)
- In order to initialize the Scanbot SDK, you now have to pass the MainActivity as an argument to the Register method of the DependencyManager:
Version 3.2.0 (30 May 2022)
- 🎉 New:
- Added support for CameraX on Android; you can now use
ScanbotCameraXViewclassical component, or you can setUseCameraXRtuUiin 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) andGs1Document(Android). - Added Barcode Document Parser, which parses any given string for supported barcode document types; see
SBSDKBarcodeDocumentParser(iOS) andBarcodeDocumentParser(Android).
- Added support for CameraX on Android; you can now use
- 🐞 Bug fixes:
- iOS: Fixed a bug with wrong camera preview orientation when starting
SBSDKBarcodeScannerViewControllerandSBSDKUIBarcodeScannerViewControllerin landscape orientation. - Android: Fixed an incorrectly thrown FileAccessException in
ScanbotBarcodeScannerSDKInitializerwhen cleaning deprecated blob files.
- iOS: Fixed a bug with wrong camera preview orientation when starting
- ⚠️ Breaking changes:
- Renamed Disability Certificate to Medical Certificate:
- iOS:
SBSDKDisabilityCertificateDocumentFormathas been renamed toSBSDKMedicalCertificateDocumentFormat - Android:
DisabilityCertificateDocumenthas been renamed toMedicalCertificateDocument
- iOS:
- Renamed Disability Certificate to Medical Certificate:
- 🚀 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:
- Updated the native Android Scanbot Barcode Scanner SDK to 3.2.0.
- Updated the native iOS Scanbot Barcode Scanner SDK to 3.2.0.
- Updated some third-party libraries.
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
AllowedInterfaceOrientationsandOrientationLockModefrom all RTU-UI configurations. UseInterfaceOrientationinstead (Portrait,LandscapeorAll)
- IMPORTANT: Removed
- 🚀 Improvements:
- Fixed
AllowedInterfaceOrientationsambiguous behavior in RTU-UI configurations - General improvement of performance and memory usage
- Improved code documentation
- Removed ineffective parameter
RecognitionEnabledfrom Batch Barcode Scanner configuration
- Fixed
- 🚙 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
EngineModeproperty 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 Plesseybarcode 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
IPictureCallbackwas replaced by an abstract classPictureCallbackthat implements theIBasePictureCallbackinterface. 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
Version 1.0.2 (03 Aug 2020)
- 🚙 Under the hood:
- Android: Added relevant
Xamarin.Android.Supportlibraries as dependencies - iOS: Upgraded the native iOS Scanbot Barcode SDK to v1.5.1
- Android: Added relevant
Version 1.0.0 (03 Mar 2020)
- 🎉 First release
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get free trial license