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
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- iOS:
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
- Added a new static property
WidestAvailableBackFacingCamera
inSBSDKCameraDevice
which returns the widest available camera configuration. - Added a new static method
SetupDefaultLicenseFailureHandlerWithCompletion
inScanbotSDKGlobal
.
- 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
SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
.
- Fixed UI issues in
- Android:
- ⚠️ 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 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
EnableGS1Decoding
of typebool
withGs1HandlingMode
of typeGs1Handling
in theBarcodeScannerAdditionalConfiguration
class. - iOS: Replaced the property
EnableGS1Decoding
of typebool
withGs1Handling
of typeSBSDKGS1Handling
in theSBSDKBarcodeAdditionalParameters
class. - 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.Dependencies
orScanbot.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 inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - Added Scan and Count of Barcodes feature. Refer to class
BarcodeScanAndCountView
forAndroid
and classSBSDKBarcodeScanAndCountViewController
foriOS
to integrate it into your app. - iOS:
- Added
ExtensionFilter
property in all barcode scanning APIs. - Added
TrackingOverlayController
property toSBSDKBarcodeScannerViewController
. - Added functions to
SBSDKDeviceInformation
to 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
recognitionEnabled
property might not have worked as intended. - Fixed a bug where
automaticSelectionEnabled
was 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.FRONT
is set up forScanbotCameraXView
.
- iOS:
- ⚠️ Breaking Changes:
- Removed the barcode type
Unknown
. - iOS:
- Removed support for iOS
11.x
and12.x
. The minimum deployment target to use ScanbotSDK in your app is iOS13.0
. - Renamed the property
AcceptedMachineCodeTypes
toAcceptedBarcodeTypes
inSBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
. - 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 toScanbot
. - Renamed the class
ScanbotSDKUI
toScanbotUI
for consistency. - Removed
SelectionOverlayTextFor
delegate method fromSBSDKUIBarcodeScannerViewController
. - Renamed
SelectionOverlayEnabled
toIsTrackingOverlayEnabled
inSBSDKBarcodeScannerViewController
. - Renamed
SBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeTrackingOverlayConfiguration
.
- 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
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. SeeSelectionOverlayConfiguration
on Android andSBSDKUIBarcodeSelectionOverlayConfiguration
on iOS. - Introduced new Barcode Format:
CODE_25
. Previously, it was considered as typeINDUSTRIAL_2OF5
without a checksum. We've now removed theINDUSTRIAL_2OF5
checksum option, and depending on a valid checksum, we either returnINDUSTRIAL_2OF5
orCODE_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
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 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
ScanbotCameraXView
instantiation error in the Layout Editor. - Fixed the
CameraManager
memory leak inScanbotCameraXView
. - Fixed NPE in
ScanbotCameraXView
when theStartPreview()
function is called whileScanbotCameraXView
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 aRejectedExecutionException
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.
- 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
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
fromSBSDKUIBarcodeScannerViewControllerDelegate
. The barcode image is now returned throughBarcodeImage
property inSBSDKBarcodeScannerResult
. - Refactored
SBSDKBarcodeScannerViewControllerDelegate
. Please check all your classes that conform toSBSDKBarcodeScannerViewControllerDelegate
.
- Removed
- Android: The direct use of
BarcodeDetectorResultHandler
is no longer supported. UseBarcodeDetectorResultHandlerWrapper
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)
- 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
BarcodePolygonsView
in Android andSBSDKPolygon
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
toSBSDKBaseScannerViewController
to play a default bleep sound. - Android: Added
BleepResId: Int
andBleepUri: Uri
parameters to theSoundController
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
toSBSDKBarcodeScannerViewControllerDelegate
. - iOS: Added new property
DefaultLicenseFailureHandler
of typeSBSDKLicenseFailureHandler
in interfaceScanbotSDK
. - iOS: Added property
ZoomFactorDidChangeHandler
toSBSDKBaseScannerViewController
to notify you when the camera zoom factor has changed. - iOS: Added property
CameraZoomFactorAbsolute
toSBSDKBaseScannerViewController
which returns the absolute camera's video zoom factor. - iOS: Added functions
FreezeCamera
andUnfreezeCamera
toSBSDKBaseScannerViewController
,SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
. - Android: New properties
InitialScanDelayMs
andDelayAfterScanMs
inBarcodeScannerConfiguration
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
methodStartSession
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
withSBSDKFinderView
. - iOS: Renamed
SBSDKUIVideoContentMode
toSBSDKVideoContentMode
. - iOS: Removed
AccumulatedFramesCount
fromSBSDKBarcodeScanner
. - iOS: Removed existing methods
CleanUpStorage
andSetBaseStorageUrl
fromSBSDKUIBarcodeImageStorage
. - iOS: Added one more parameter in
SBSDKUIBarcodeScannerUIConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
constructors, which is of typeSBSDKUIBarcodeSelectionOverlayConfiguration
. - Removed parameters
ImageOrientationLock
andAllowedInterfaceOrientations
from 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 (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)
- 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
ScanbotCameraXView
classical component, or you can setUseCameraXRtuUi
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) 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
SBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerViewController
in landscape orientation. - Android: Fixed an incorrectly thrown FileAccessException in
ScanbotBarcodeScannerSDKInitializer
when cleaning deprecated blob files.
- iOS: Fixed a bug with wrong camera preview orientation when starting
- ⚠️ Breaking changes:
- Renamed Disability Certificate to Medical Certificate:
- iOS:
SBSDKDisabilityCertificateDocumentFormat
has been renamed toSBSDKMedicalCertificateDocumentFormat
- Android:
DisabilityCertificateDocument
has 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 (cf. changelog).
- Updated the native iOS Scanbot Barcode Scanner SDK to 3.2.0 (cf. changelog).
- 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
AllowedInterfaceOrientations
andOrientationLockMode
from all RTU-UI configurations. UseInterfaceOrientation
instead (Portrait
,Landscape
orAll
)
- IMPORTANT: Removed
- 🚀 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
- 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
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 classPictureCallback
that implements theIBasePictureCallback
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
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
- 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 your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.