Changelog | MAUI Barcode Scanner
tip
For additional details about the API, please refer to our API reference documentation.
MAUI - Version 6.1.0 (14 Feb 2025)
- 🎉 New:
- Added new
SBSDKInitializer
class which provides 2 method overloads to initialize the SDK.- Added new
SBSDKConfiguration
class for the SDK initialization configuration.
- Added new
- Added new class
ScanbotSDKMain
which contains each detector and UI feature grouped more logically.RTU
groups all of the Ready-to-Use UI scanners, along with theLegacy
group for the Legacy Barcode scanner.Detectors
groups all of the image-based barcode detectors.- All SDK interfaces available via
ScanbotSDKMain
are also registered for MAUI dependency injection when initializing the SDK with aMauiAppBuilder
.
- Added support for new barcode types
MaxiCode
,RmqrCode
,Code11
andCode32
. - Added properties
AustraliaPostCustomerFormat
,UseIATA2OF5Checksum
andUseCode11Checksum
toBarcodeScannerAdditionalParameters
andBarcodeRecognizerConfiguration
. - Added property
AddAdditionalQuietZone
inBarcodeScannerAdditionalParameters
. - Added
AustraliaPostCustomerFormat
enum to represent formats of the barcode data for the Australian Post customer barcode. - Added new property
PostalFormats
toBarcodeFormats
class. - Added a new property
AllowEmptySubmission
inMultipleScanningMode
to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2. - iOS: 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 the ability to display the scanned barcode's image in the RTU-UI v2 Barcode Scanner
FindAndPickScanningMode
use case by setting the valueExpectedBarcode.BarcodeImageKey
to theImage
property ofExpectedBarcode
class.
- Added new
- 🚀 Improvements:
- Improved GS1 string handling with new modes for decoding and validation. See
Gs1Handling
. - Improved detection of UPC and EAN extensions.
- Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
- For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved GS1 string handling with new modes for decoding and validation. See
- 🐞 Bug fixes:
- Fixed KANJI mode for QR codes.
- iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner
FindAndPickScanningMode
use case that never showed the expected barcode title, but always the barcode value. - iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner
FindAndPickScanningMode
use case in button sheet mode where the counter badge was not visible. - iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's sheet screen where the subtitle label was being vertically cut off.
- iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
- iOS: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes were displayed along with their non-extended versions.
- iOS: Fixed a bug that did not mirror the front camera as expected.
- iOS: Fixed a crash in scanners when setting the same
minZoom
andmaxZoom
inZoomRange
. - Android: Fixed R8 obfuscation config for SDK logging classes.
- Android: Minor fixes for appearance in RTU-UI v2 Barcode Scanner to make it consistent with its iOS counterpart.
- Android: Fixed an issue with AR Overlay and barcode mapping in RTU-UI v2 Barcode Scanner, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
- ⚠️ Breaking Changes:
- IMPORTANT: Marked the
ScanbotBarcodeSDK
class as obsolete. Please refer to the new alternative classScanbotSDKMain
. - IMPORTANT: Moved the Barcode APIs from the
ScanbotSDK.MAUI
namespace toScanbotSDK.MAUI.Barcode
namespace. Below are some examples:ScanbotSDK.MAUI.RTU.v1.IBarcodeDetector
toScanbotSDK.MAUI.Barcode.RTU.v1.IBarcodeDetector
ScanbotSDK.MAUI.RTU.v1.IBarcodeScanner
toScanbotSDK.MAUI.Barcode.RTU.v1.IBarcodeScanner
ScanbotSDK.MAUI.RTU.v1.Result
toScanbotSDK.MAUI.Barcode.RTU.v1.Result
- IMPORTANT: Various existing detection and UI methods have been updated to use
PlatformImage
instead ofImageSource
.- Please see
ScanbotSDK.MAUI.Barcode.BarcodeDetectorExtensions
. The extension methods are provided to allowImageSource
to still be used. - Conversion to
ImageSource
may be needed in cases where it is used in a result type (for exampleBarcodeResultBundle
,Barcode
classes and the ImagePicker result, etc).
- Please see
- Renamed interface
IScanbotBarcodeSDKService
toICommonOperations
. Please seeScanbotBarcodeSDK.SDKService
object.- Replaced
GetLicenseInfo()
method withLicenseInfo
property. - Replaced the namespace of
ScanbotSDK.MAUI.RTU.v1.Result
withScanbotSDK.MAUI.Barcode.RTU.v1.Result
, which is the return type ofScanbotBarcodeSDK.SDKService.ClearStorageDirectory()
method.
- Replaced
- Replaced
ScanbotBarcodeSDK.BarcodeScanner.OpenBarcodeScannerAsync(...)
method withScanbotBarcodeSDK.BarcodeScanner.LaunchAsync(...)
.- The
OpenBarcodeScannerAsync(...)
method, which is now marked obsolete, can still be found in theBarcodeScannerExtensions
class.
- The
- Renamed interface
IImagePickerService
toIImagePicker
. Please seeScanbotSDKMain.ImagePicker
object. - Renamed all the methods in
ScanbotBarcodeSDK.LegacyScanner
. SeeScanbotSDKMain.RTU.Legacy.BarcodeScanner
. - Removed enum
BarcodeDensity
. - Removed property
CodeDensity
fromBarcodeScannerAdditionalParameters
. - Removed enum values
Validate
andDecode
fromGs1Handling
and replaced them byDecodeStructure
,DecodeFull
,ValidateStructure
andValidateFull
. - AR overlay is enabled by default for
FindAndPickScanningMode
in Barcode Scanner RTU-UI v2 screen. - Android: Removed redundant fields
BarcodeImagePath
andBarcodePreviewFramePath
fromResult
class in Barcode Scanner RTU-UI v2. - Android: Changed
BarcodesRegexFilter
config behavior for Barcode Scanner RTU-UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex.
- IMPORTANT: Marked the
- 🚙 Under the hood:
- Updated the .NET bindings to .NET Barcode SDK 6.1.0 (see our .NET changelog for more under the hood changes).
- Android: Added gs1-syntax-dictionary lib.
MAUI - Version 5.1.1 (12 Dec 2024)
- 🎉 New:
- Added
ParsedDocument
property in the RTU UI Barcode v1 result. Refer toScanbotSDK.MAUI.RTU.v1.Barcode
class. - Added support for
net8.0
andnet7.0
, which is helpful for the unit tests projects, to test the configuration classes.
- Added
- 🚀 Improvements:
- Android: Added a fix for scanning big chunks of barcodes in a single session.
- iOS: Improved the Barcode classic components behavior when the scanner visibility was toggled.
MAUI - Version 5.1.0 (7 Aug 2024)
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
ScanbotSDK.MAUI.ScanbotBarcodeSDK.BarcodeScanner
to leverage the new UI. See Ready-to-Use UI for documentation and various use cases. - Added support for filtering barcodes using a regular expression in our barcode classic component.
- Added support for the Micro PDF 417 barcode format.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
- 🚀 Improvements:
- Optimized camera preview quality and processing speed for all scanners.
- iOS:
- 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.
- Added support of haptic feedback on capable devices.
- Android:
- Changed the touch to focus square in the native camera view to a circle.
- Added several missing, and mostly platform specific, properties to the RTU v1 scanner configurations:
BarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
the following properties where exposed:- Both iOS and Android:
AutoCancelTimeout
(this was already present inBarcodeScannerConfiguration
, but was added toBatchBarcodeScannerConfiguration
).
- For Android only (accessible through #if ANDROID):
CameraPreviewMode
UseButtonsAllCaps
DelayAfterScan
TouchToFocusEnabled
MinFocusDistanceLock
- For iOS only (accessible through #if iOS):
FocusLockEnabled
FocusLockPosition
DoubleTapToZoomEnabled
PinchToZoomEnabled
ShouldAnimateZooming
- Both iOS and Android:
- 🐞 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.
- ⚠️ Breaking Changes:
- IMPORTANT: The MAUI Classic UI Components:
BarcodeScannerView
andBarcodeScanAndCountView
must now be wrapped insideScanbotClassicUIContainer
. See the example here. - Our Ready to Use UI v1 barcode scanners are now deprecated and it is highly encouraged to use the new RTU UI v2 barcode scanner API. All RTU v1 code has been moved to the
ScanbotSDK.MAUI.RTU.v1
namespace, with RTU v2 code existing underScanbotSDK.MAUI
. - The structure of barcode formatted results has been changed from record classes to using GenericDocument. See API reference for the new structure here. This change affects RTU UI v1, however, the same structures are used across RTU UI v1 and RTU UI v2.
- Renamed
BarcodeFormat.Rss14
toBarcodeFormat.Databar
andBarcodeFormat.RssExpanded
toBarcodeFormat.DatabarExpanded
. - ZoomRange can be created with any input values but will be limited under the hood by internal MIN_ZOOM (x0.2) and MAX_ZOOM (x100) values.
- iOS:
MinFocusDistanceLock
removed fromBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.FocusLockEnabled
andFocusLockPosition
are exposed for iOS and these values give more control for camera focus.
- 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.
- IMPORTANT: The MAUI Classic UI Components:
- 🚙 Under the hood:
- Updated the .NET bindings to .NET Barcode SDK 5.1.0 (see our .NET changelog for more under the hood changes).
MAUI - Version 4.2.1 (25 Mar 2024)
- 🎉 New:
- Added new events for
ScanbotSDK.MAUI.ClassicComponent.BarcodeScannerView
:OnBarcodeScanResult
, triggered after a barcode scan result is obtained;OnSelectBarcodeResult
, which occurs when a barcode result is selected.
- Added new events for
- 🚀 Improvements:
- Previously targeting
.NET 7
, now supports both.NET 7
and.NET 8
.
- Previously targeting
- 🐞 Bug Fixes:
- Namespace issues in the classic component resolved;
- The
OverlayTextFormat
property is now consistently reflected across platforms.
- ⚠️ Breaking Changes:
- Changes in
SelectionOverlayConfiguration
:PolygonColor
has been renamed toStrokeColor
.HighlightedPolygonColor
has been renamed toHighlightedStrokeColor
.
BarcodeScannerView.OverlayTextEnabled
is set to true by default.
- Changes in
- 🚙 Under the hood:
- The native Scanbot iOS SDK upgraded to v4.2.2.
MAUI - 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 new components
ScanbotSDK.MAUI.ClassicComponent.BarcodeScannerView
andScanbotSDK.MAUI.ClassicComponent.BarcodeScanAndCountView
. It's recommended to utilize .NET 8 as your target platform because .NET 7 has issues with its Shell control which affect our Classic Component. - Formatted barcode documents are now exposed on barcodes via a new property called
FormattedResult
, which contains strongly typed records of the data contained within the barcode. The new record types include:AAMVADocument
DEMedicalPlanDocument
Gs1Document
IDCardPDF417Document
MedicalCertificateDocument
SEPADocument
SwissQRDocument
VCardDocument
BoardingPass
- Added
CameraZoomRange
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- Added support for several new barcode formats including:
- 🚀 Improvements:
- Improved the speed of barcode recognition for most barcode symbologies.
- Improved contour lines detection with ML Based detection.
- 🐞 Bug fixes:
- Android:
- Optimized camera functionalities in
ScanbotCameraXView
.
- Optimized camera functionalities 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
.
- 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:
MAUI - Version 4.0.0 (9 Jan 2024)
- 🚀 Improvements:
- Improved the speed of barcode recognition for most barcode symbologies.
- No need to call
DependencyManager.RegisterServices
in platform specific start-up code. Services are registered as soon as the SDK is initialized.
- 🐞 Bug fixes:
- Both iOS and Android:
InitialScanDelay
only used some portions of theTimeSpan
object (seconds for iOS, milliseconds for Android). Now the full total is used.AutoCancelTimeout
removed fromBatchBarcodeScannerConfiguration
as it is only currently supported for the regular barcode scanner viaBarcodeScannerConfiguration
.
- Android:
- 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 returned
BarcodeFormat.Code25
results whenBarcodeFormat.Industrial2Of5
was enabled andBarcodeFormat.Code25
was disabled. Now, we do not return theBarcodeFormat.Code25
result for such decoding options. AutoCancelTimeout
only used the seconds portion of theTimeSpan
object. Now the total number of seconds is correctly used.
- iOS:
- Fixed a crash when denying camera permission.
- Fixed issue with
ScanbotBarcodeSDK.BarcodeService.OpenBarcodeScannerView
in which the default title of the confirm button was set to the default title of the retry button. AutoCancelTimeout
is now applied correctly when usingScanbotBarcodeSDK.BarcodeService.OpenBarcodeScannerView
.
- Both iOS and Android:
- ⚠️ Breaking changes:
- All types under the
BarcodeSDK
namespace have been moved to theScanbotSDK
namespace.
- All types under the
- 🚙 Under the hood:
- The
ScanbotBarcodeSDK.NET
package is no longer referenced as a dependency. All needed files and dependencies are included directly in the package. BarcodeSDK.MAUI.iOS
andBarcodeSDK.MAUI.Droid
assemblies merged into one assembly namedBarcodeSDK.MAUI
.- The native Scanbot Android SDK upgraded to v4.0.1.
- The native Scanbot iOS SDK upgraded to v4.0.3.
- The
MAUI - Version 3.7.0 (5 Oct 2023)
- 🎉 New:
- More supported barcode types:
- Micro QR Code
- Support for configuring a confirmation dialog for the Barcode Scanner Ready-To-Use UI Component.
- More supported barcode types:
- 🚀 Improvements:
- Improved accuracy and detection speed of QR_CODE, Code39, and Code93 barcode types.
- Added support for inverted PDF-417 barcodes.
- 🐞 Bug fixes:
BarcodeSDK.MAUI.ScanbotBarcodeSDK.LicenseInfo
now returns the correct license status.- Fixed iOS-specific issue with barcode RTU-UI components not scanning on first use.
- For
BarcodeSDK.MAUI.ScanbotBarcodeSDK.DetectionService.DetectBarcodesFrom
:- Fixed
NullReferenceException
when using anull
ImageSource
(usually from a cancelled image selection). - Fixed iOS-specific issue with barcodes not being scanned when no configuration is provided.
- Fixed Android-specific issue with the method always returning
null
when using theImageSource
overload.
- Fixed
- ⚠️ Breaking changes:
- Renamed the
BarcodeSDK.MAUI.Constants.OverlayFormat
enum toBarcodeSDK.MAUI.Constants.BarcodeTextFormat
.- Any types which use the enum have also been updated, such as
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
.
- Any types which use the enum have also been updated, such as
- If using named parameters for
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
, the misspelledautomaticSelectionEnaled
parameter has been renamed toautomaticSelectionEnabled
.
- Renamed the
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v3.7.0.
- The native Scanbot iOS SDK upgraded to v3.7.1.
MAUI - Version 3.6.0 (20 Jul 2023)
- 🎉 First release of the
ScanbotBarcodeSDK.MAUI
NuGet package. - Provides Ready-To-Use UI Components - a set of easy to integrate and customize high-level MAUI components for the most common tasks in Scanbot Barcode SDK:
- Barcode & QR Code Scanning
- Batch Barcode Scanning.
- 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
- MAUI-based unified API for Android & iOS
- 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.