Changelog | .NET Barcode Scanner
tip
For additional details about the API, please refer to our API reference documentation.
.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:
- BatchBarcodeScannerActivity class from RTU UI v1 is now marked as 'Deprecated'.
- Renamed Rss14 barcode format to Databar and RssExpanded to DatabarExpanded.
- Removed BarcodeFormat.Code25 from BarcodeFormat.CommonCodes list.
- Deleted deprecated IsLicenseActive and IsLicenseValid from ScanbotBarcodeScannerSDK. Please use LicenseInfo.IsValid instead.
- ZoomRange can be created with any input values but will be limited under the hood by internal MinZoom (x0.2) and MaxZoom (x100) values.
- Replaced the class BarCodeFormattedResult by GenericDocument class for barcode document parser output.
- BarcodeExtensionsFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
- 🚙 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:
- 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 type SBSDKUI2BarcodeFormat.MicroPdf417.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added various properties to SBSDKBaseScannerViewController and SBSDKBarcodeScannerViewController:
- Added new property RegularExpressionPattern to SBSDKBarcodeScannerViewController and SBSDKBarcodeScanner to limit detection results.
- Added IsCameraFrozen property to SBSDKBaseScannerViewController.
- Added new function ResetAccumulation to SBSDKBarcodeScannerViewController.
- Added the ViewFinderStyle property to SBSDKBaseScannerViewController.
- Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class SBSDKBarcodeDocumentConstants which has all the constants related to the barcode document format.
- Added a new class SBSDKBarcodeDocumentRootType which replaces the old SBSDKBarCodeScannerDocumentFormat.
- Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See ScanbotSDKGlobal.TestData, SBSDKTestData and SBSDKSimulatedCameraMockData.
- Added streaming encryption support to SBSDKStorageCrypting.
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
- Added new static property MaximumRecommendedImageSize to SBSDKDeviceInformation.
- 🚀 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:
- IMPORTANT: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Deprecated SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController along with their related classes. Please consider switching to the new SBSDKUI2BarcodeScannerViewController.
- Renamed function CaptureJPEGStillImage to CaptureStillImageWithCompletionHandler in SBSDKBaseScannerViewController (and all subclasses) and SBSDKCameraSession.
- Replaced the class SBSDKBarcodeDocumentType with SBSDKBarcodeDocumentRootType.
- Removed the protocol SBSDKBarCodeScannerDocumentFormat and all of its children classes.
- Changed SetLoggingEnabled to property IsLoggingEnabled in SBSDKLog.
- Changed all SBSDKBarcodeType global constants to static properties of SBSDKBarcodeType.
- Moved the global constants SBSDKBarcodeMetadataEANUPCExtensionKey and SBSDKBarcodeMetadataIsGS1MessageKey to SBSDKBarcodeScannerResult as its static properties.
- 🚙 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
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- 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
.
- iOS:
- The method
DidDetect
in theBarcodeResultReceiver
class has been renamed toDidDetectResults
, and its signature now matches the updated method signature in theSBSDKUIBarcodeScannerViewControllerDelegate
interface.
- The method
- GS1 codes are now handled differently for various barcode types. Using the default option
- 🚙 Under the hood:
- iOS:
- Added new methods in
SBSDKCameraDevice
class for camera and licensing functionalities.
- Added new methods in
- The native Scanbot iOS SDK upgraded to v4.2.1.
- The native Scanbot Android SDK upgraded to v4.2.0.
- iOS:
.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
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
). - Added property
Extension
toSBSDKBarcodeScannerResult
. - Added
TrackingOverlayController
property toSBSDKBarcodeScannerViewController
. - 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 aSBSDKBarcodeTrackingOverlayController
.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
toSBSDKCameraDevice
. - Added new method
setupDefaultLicenseFailureHandlerWithCompletion:
to theScanbot
class.
- Added new Classic UI component
- iOS:
- 🚀 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
andpolygonFillDeclinedColor
.
- It is now possible to color each barcode on the barcode AR overlay. Use
- 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.
- Android:
- 🐞 Bug fixes:
- Android:
- Removed conflicting "app_name" string resources from library modules.
- Fixed bug for
BarcodePolygonsStaticView
where it crashed ifbarcodeItemViewFactory
returnsnull
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.
- Android:
- ⚠️ Breaking changes:
- Android:
- Removed methods from
BarcodePolygonsView
andBarcodeScannerView.selectionOverlayController
related to polygon and text view appearance. E.g.setStrokeColor
etc. Please useBarcodeAppearanceDelegate
instead! - Removed
UNKNOWN
barcode type from the API as it is applicable only for internal usage.
- Removed methods from
- iOS:
- Due to a Swift compiler naming collision, the class
ScanbotSDK
has been renamed toScanbotSDKGlobal
. - Renamed the class
ScanbotSDKUI
toScanbotUI
. - Removed barcode type
SBSDKBarcodeTypeUnknown
. - Removed
SelectionOverlayTextFor
fromSBSDKUIBarcodeScannerViewController
. - Renamed
SelectionOverlayEnabled
toIsTrackingOverlayEnabled
inSBSDKBarcodeScannerViewController
. - Renamed
SBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeTrackingOverlayConfiguration
. - Renamed
SelectionOverlayConfiguration
totrackingOverlayConfiguration
inSBSDKUIBarcodeScannerConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
. - Renamed
PhotoQualityPriorization
toPhotoQualityPrioritization
everywhere in the SDK.
- Due to a Swift compiler naming collision, the class
- Android:
- 🚙 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.
- Removed reference to
.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
toIO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
for modifying dialog UI.
- Added
- Added Scan and Count of Barcodes feature.
- Use
IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountView
to integrate it into your app.
- Use
- Added new function
- iOS:
- Added new property
ViewFinderEnabled
to:ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Added new properties
ConfirmationDialogTitle
andConfirmationDialogMessage
toScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration
.
- Added new function
FlipHorizontally
toScanbotBarcodeSDK.iOS.SBSDKPolygon
. - Added new property
IsMirrored
toScanbotBarcodeSDK.iOS.SBSDKCameraDevice
.
- Added new property
- Both Android and iOS:.
- 🚀 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.
- Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
- Both Android and iOS:
- 🐞 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 forIO.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 inScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerViewController
. - Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
- Fixed a crash when denying camera permission.
- Android:
- ⚠️ Breaking changes:
- iOS:
- Several delegate method names were renamed, such as:
ScanbotBarcodeSDK.iOS.SBSDKUIViewControllerDelegate
:ViewControllerShouldCancel
toShouldCancel
.ViewControllerShouldFinish
toShouldFinish
.
- 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
toAcceptedBarcodeTypes
in:ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Several delegate method names were renamed, such as:
- iOS:
- 🚙 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 LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.