Changelog for the Android Barcode Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 7.1.2 (15 Oct 2025)
- 🎉 New:
- Barcode Scanner:
- Barcode configurations for 1D barcode types have a new field
minimumNumberOfRequiredFramesWithEqualRecognitionResultthat requires this number of frames on which the barcode has to be detected.
- Barcode configurations for 1D barcode types have a new field
- Barcode Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
minConfirmationsStandaloneEANinBarcodeAccumulationConfigurationwas moved and renamed to the fieldminimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
Version 7.1.1 (27 Aug 2025)
- 🎉 New:
- General:
- Added setters for
UseCaseResolutionSizelimits for Preview and Analyzer use-cases inScanbotCameraXView. SeeScanbotCameraXView#setPreviewFrameResolutionLimit(limit: UseCaseResolutionSize)andScanbotCameraXView#setAnalyzerFrameResolutionLimit(limit: UseCaseResolutionSize).
- Added setters for
- General:
- 🚀 Improvements:
- Barcode Scanner:
- Improved handling of back action with multiple dialogs and bottom sheets.
- General:
- Changed permission on mock camera to
android.permission.READ_EXTERNAL_STORAGE. - Optimized the selection of the resolution for the Preview use-case in
ScanbotCameraXView. Square resolution support is now an opt-in option. SeeIScanbotCameraView#setSquareFrameSizeEnabled(enabled: Boolean).
- Changed permission on mock camera to
- Barcode Scanner:
- 🐞 Bug fixes:
- Barcode Scanner:
- Fixed an issue where the
extractedDocumentwas not being generated for GS1 HandlingDecodeStructureandDecodeFull. - Barcode Scanner RTU UI v2: fixed an issue where the back button navigation did not work.
- Fixed an issue where the
- General:
- Fixed an issue with the black preview in
ScanbotCameraXViewwhen the camera selected a square resolution on some Samsung and Xiaomi devices. - Prevent throwing exception when
/sys/devices/system/cpu/cpufreqdoesn't exist.
- Fixed an issue with the black preview in
- Barcode Scanner:
- 🚙 Under the hood:
- Added 3rd party PdfiumAndroid library.
Version 7.1.0 (24 Jul 2025)
- 🎉 New:
- Barcode Scanner:
- Added
extendedQuadandextendedQuadNormalizedfields to theBarcodeItemclass to represent extended quads for 1D barcodes. BarcodeItemhas a new fieldrawBytesEncodingsthat contains the precise character encoding information ofrawBytes.BarcodeItemhas a new fieldstructuredAppendInfofor messages split across multiple barcodes.- All Barcode AR overlays are now based on
extendedQuads. BarcodeScannerConfigurationhas a new fieldaccumulationConfigwhich allows the accumulation of barcodes over multiple frames in live mode.BarcodeItemhas a new fieldglobalIndexto identify a barcode across multiple frames. Can be used for live scanning.- RTU-UI v2: Added
selectedZoomFactor: Doublemetadata field inBarcodeScannerUiResultwith the value that the user used to scan the barcode.
- Added
- General:
ImageRefin Java wrapper can now be efficiently created from ajava.io.InputStream.- Added
setImageCaptureEnabled(enabled: Boolean)method toScanbotCameraXViewto enable or disable image capture functionality. - Added more debug level logging to
ScanbotCameraXViewevents. - Added the possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See
ScanbotCameraViewConfigurationProvider. - Added property
fpsLimittoCameraConfigurationandsetAnalyzerFpsLimittoScanbotCameraXViewto limit the rate of detections per second in normal performance mode.
- Barcode Scanner:
- 🚀 Improvements:
- Barcode Scanner:
- Boarding pass document parser now supports up to version 8 of the IATA-BCBP standard.
- vCard document parser was improved.
- General:
- Improved
ScanbotCameraXViewpreview size selection strategy for the square screens. - Improved the algorithm of high performance cores computation as the old one didn't work correctly on some devices (e.g. Pixel 9 Pro).
- Integrated Android Performance Hint Session. This significantly improves multithreading performance for Barcode Scanner on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra). Use
ScanbotBarcodeScannerSDKInitializer.setPerformanceHintApiEnabled(false)to turn it off.
- Improved
- Barcode Scanner:
- 🐞 Bug Fixes:
- Barcode Scanner:
- The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now, all possible codewords are checked.
- vCard document parser now correctly processes the "FN" key as FormattedName.
- General:
- RTU-UI v2: Fixed handling of the back actions for modal dialogs.
- Fixed a bug when
CameraTakePictureCallback.onTakePictureRequested()wasn't called properly at the corresponding event.
- Barcode Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
BarcodePolygonsView.BarcodeItemViewBinder.bindView(): Added an additional property withtextViewStyle.
- General:
- Removed
ScanbotBarcodeScannerSDKInitializer.useCameraXRtuUi().
- Removed
- Barcode Scanner:
- 🚙 Under the hood:
- Added flatbuffers 2.0.6.
Version 7.0.2 (23 May 2025)
- 🚀 Improvements:
- GS1 Composite codes are now processed faster in Scan from Image mode.
- Barcode RTU-UI v2: Added the ability to force close an opened scanner screen by local intent.
- 🐞 Bug fixes:
- Fixed a crash that occurred when parsing an HIBC document in the Barcode Scanner.
- Fixed the camera preview size selection algorithm for
ScanbotCameraXViewwith a square aspect ratio. - Barcode RTU-UI v2: Fixed a crash with barcode launcher initialization when the SDK was not yet initialized.
- 🚙 Under the hood:
- Updated Boost C++ version to 1.88.0
- Updated spdlog version to 1.15.2
- Updated xsimd version to 13.2.0
- Updated xtensor version to 0.26.0-scanbot
- Updated xtl version to 0.8.0
Version 7.0.1 (23 April 2025)
- 🚀 Improvements:
- Improved the recognition of PDF417 barcodes in the barcode scanner.
- Improved the barcode scanner to better recognize the QR codes if the top left finder pattern is corrupted (up to QR code version size 20).
- 🐞 Bug fixes:
- Fixed the resolution strategy for the square preview for
ScanbotCameraXView. - Fixed an issue when scanning Code93 barcodes with
stripCheckDigits = false(default) and the check digit is an extension character.
- Fixed the resolution strategy for the square preview for
Version 7.0.0 (27 Mar 2025)
- 🎉 New:
- Advanced configuration of Barcode Scanner. See more here:
BarcodeScannerConfiguration. - Simplified configuration of Barcode Scanner. See more here:
BarcodeScannerConfiguration.create(barcodeFormats: List<BarcodeFormat>, extractedDocumentFormats: List<BarcodeDocumentFormat>, onlyAcceptDocuments: Boolean). - Lists of predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. Old predefined sets of barcode formats were removed. See more here:
BarcodeFormats. - Added an ability to filter out all unaccepted barcode document formats in
BarcodeDocumentParser. See more here:BarcodeDocumentParser.parseDocument(input: String, acceptedFormats: List<BarcodeDocumentFormat> = BarcodeDocumentFormats.all). - Images are now represented as references by using the
ImageReffeature. - Added a new
BarcodeScannerEngineModecalledNEXT_GEN_FAR_DISTANCEwhich is optimized for scanning from far distances. - Introduced a new engine mode
NEXT_GEN_LOW_POWER_FAR_DISTANCEthat is optimized for scanning barcodes from far distances on low-power devices. - Added support for new barcode formats that are used in the pharmaceutical industry:
PHARMA_CODE,PHARMA_CODE_TWO_TRACK,PZN_8(Pharmazentralnummer),PZN_7. - Added support for a new barcode document format
BarcodeDocumentFormat.HIBC. BarcodeItemhas a newsizeScorefield with a value between 0 and 1 that represents the relative size of the barcode compared to the size of the input image. All barcode configurations have a new floatminimumSizeScorethat is set to 0 by default. All barcodes withsizeScore < minimumSizeScoreare ignored. Note thatminimumSizeScorecan be chosen differently for each barcode format.- Added a flag
addAdditionalQuietZonetoBarcodeFormatConfigurationBase. If this flag is enabled, we process the barcode scanning with an artificial quiet zone that we add to the input image. This flag should be used to scan sharp crops of a barcode. By default the flagaddAdditionalQuietZoneis disabled. - Added a flag
keepScreenOntoBarcodeScannerScreenConfigurationfor RTU-UI v2 Barcode Scanner screen. Iftrue, as long as this window is visible, the device's screen will stay awake. - Introduced a boolean
strictModefor certain barcode configurators. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we supportstrictModeforQR_CODE,MICRO_QR_CODE,RMQR_CODE,PDF_417,MICRO_PDF417, andGS1_COMPOSITE. - RTU-UI v2: added support of
minimumSizeScoreproperty for Barcode Scanner configuration.
- Advanced configuration of Barcode Scanner. See more here:
- 🚀 Improvements:
- Added the option to ignore barcodes that do not decode to one of the accepted document formats for
BarcodeScannerConfigurationin RTU-UI v2 screen. See more here:BarcodeScannerConfiguration.onlyAcceptDocuments. - Significant speed improvements in live mode on very large input resolutions.
- Improved the false positive rate for
ITFbarcode format. - Improved quiet zone checks for the barcode formats
ITF,CODE_11,MSI_PLESSEY,IATA_2_OF_5,INDUSTRIAL_2_OF_5andCODE_25. - We additionally allow for checking
maximumTextLengthfor the barcode formatsCode11,Code39,Code93,Code128andCodabar. - By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
stripCheckDigits = true.
- Added the option to ignore barcodes that do not decode to one of the accepted document formats for
- 🐞 Bug fixes:
- Fixed screen insets for Android API 35 with forced edge-to-edge mode by opting it out for RTU-UI v1 screens.
- RTU-UI v2: Fixed the modal dialog to no longer appear below the status bar.
- Fixed an overflow when decoding a
MICRO_QR_CODEbarcode format with wrong bits in numeric mode. - Fixed
minimumTextLengthforITFbarcode format. Before, we used it to check the number of symbols instead of the true text length. - Fixed returned results for all types of
UpcEanExtensionBehavior. - Fixed checksum for
Code39barcode format. - For
Code11barcode format with exactly 10 data digits, enabled checksum and enabled flagstripCheckDigits, we now strip both check digits. - Fixed sorting of quad points for four-state/postal barcode types.
- Fixed quad when flag
BarcodeFormatConfigurationBase.addAdditionalQuietZoneis enabled. - RTU-UI v2: fixed issue with
FindAndPickScanningMode().sheetContent.barcodeItemImageVisiblewas not properly applied. - RTU-UI v2: fixed accessibility content for action buttons.
- ⚠️ Breaking Changes:
- RTU-UI v1: All screens now expect
RGBAvalues for HEX string when parsing configuration from JSON. - RTU-UI v1: Refactored the screen result structure for both single and batch scanning operations. See more here:
BarcodeScannerResult. - RTU-UI v1: Removed the ability to set Barcode Image Generation type in the screen configuration.
- RTU-UI v2: Changed the result API of the screen. See more here:
BarcodeScannerUiResult. - Removed old configuration API of Barcode Scanner. Please use the new configuration mechanisms instead.
- All Barcode Formats are represented by
io.scanbot.sdk.barcode.BarcodeFormatenum. All other barcode format enums were removed. - Replaced class
io.scanbot.barcodescanner.model.BarcodeTypewithio.scanbot.sdk.barcode.BarcodeFormat. - Renamed enum
MSIPlesseyChecksumAlgorithmtoMsiPlesseyChecksumAlgorithm. - Barcode Document Format are represented by
io.scanbot.sdk.barcode.BarcodeDocumentFormatenum. - Removed class
io.scanbot.sdk.ui_v2.common.mappers.AspectRatio, please useio.scanbot.sdk.common.AspectRatio. - RTU-UI v2: refactored
BarcodesExtensionFilterenum and synchronized withUpcEanExtensionBehaviorenum from Barcode Scanner Classic component API. - Replaced
acceptedDocumentFormatslist parameter inBarcodeScannerConfigurationwithextractedDocumentFormatslist of document formats andonlyAcceptDocumentsflag.
- RTU-UI v1: All screens now expect
- 🚙 Under the hood:
- Updated Compile Sdk to 35
- Android Jetpack Compose updated to 1.7.8
- Upgraded nlohmann::json to 3.11.3
- Upgraded xsimd to 13.0
- Upgraded xtl to 0.7.7
- Upgraded xtensor to 0.25
- Upgraded yaml-cpp to 0.8
- Upgrade OpenCV to 4.10
Version 6.2.1 (07 Feb 2025)
- 🐞 Bug fixes:
- Fixed potential issue with
BarcodePolygonViewduringonDestroywhen the AR overlay is displayed.
- Fixed potential issue with
Version 6.2.0 (30 Jan 2025)
- 🎉 New:
- Add the ability to limit the detection fps in
ScanbotCameraX. - Implemented AES GCM encryption. Use
AesGcmEncryptedFileIoProcessorwhen setting encryption during SDK initialization.
- Add the ability to limit the detection fps in
- 🚀 Improvements:
- Improved
ScanbotCameraXresolution selection strategies for scanning and preview cases.
- Improved
- 🚙 Under the hood:
- Updated androidx camerax 1.4.1 with 16kb page support.
Version 6.1.1 (4 Dec 2024)
- 🐞 Bug fixes:
- Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.
Version 6.1.0 (8 Nov 2024)
- 🎉 New:
- Added support for 16KB page size (Android 15).
- Added option
MultipleScanningMode.allowEmptySubmissionto allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
- 🐞 Bug fixes:
- Fixed KANJI mode for QR codes.
- Fixed a bug with incorrect raw bytes returned for some 2D barcode types.
- Fixed an issue with AR Overlay and barcode mapping in
BarcodeScannerActivityRTU UI v2.0, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
Version 6.0.0 (24 Oct 2024):
- 🎉 New:
- Added new property
addAdditionalQuietZonetoBarcodeScannerAdditionalConfig. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL, which includes barcodes used in the postal industry.
- Added new property
- 🚀 Improvements:
- AR overlay is enabled by default for
FindAndPickScanningModein Barcode Scanner RTU UI v2 screen. - For
CODE_128andITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- AR overlay is enabled by default for
- 🐞 Bug fixes:
- Minor fixes for BarcodeScanner appearance in RTU UI v2 to make it consistent with iOS counterpart.
Version 5.2.0 (28 Jun 2024)
- 🎉 New:
- Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat,useIATA2OF5ChecksumanduseCode11ChecksumtoBarcodeAdditionalParameters,BarcodeScannerAdditionalConfigurationfor RTU UI screen andBarcodeRecognizerConfigurationfor RTU UI v2 screen. - Added
AustraliaPostCustomerFormatenum to represent formats of the barcode data for the Australian Post customer barcode. - Added
resetPolygonState()inBarcodePolygonViewto properly clean its state when disabling it after scanning.
- 🚀 Improvements:
- Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
Gs1Handling. ScanbotCameraXViewnow logs more information throughout its lifecycle (use filter byScanbotCameraXViewtag). Logging is enabled only in the 'debug' builds.- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- 🐞 Bug fixes:
- Fixed R8 obfuscation config for SDK logging classes.
- Fixed a bug in
ScanbotColorwhere settingisArgbto true, resulted in a wrong color.
- ⚠️ Breaking Changes:
- Removed enum
BarcodeDensity. - Removed property
codeDensityfromBarcodeAdditionalParameters. - Removed enum values
VALIDATEandDECODEfromGs1Handlingand replaced them byDECODE_STRUCTURE,DECODE_FULL,VALIDATE_STRUCTUREandVALIDATE_FULL. - Removed redundant fields
barcodeImagePathandbarcodePreviewFramePathfromResultclass in Barcode Scanner RTU UI v2. - Changed
barcodesRegexFilterconfig behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex.
- Removed enum
- 🚙 Under the hood:
- Updated 3rd-party libraries:
- added
gs1-syntax-dictionarylib
- added
- Updated 3rd-party libraries:
Version 5.1.2 (27 Jun 2024)
- 🚀 Improvements:
- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- 🐞 Bug fixes:
- Fixes a bug in
ScanbotColorwhere settingisArgbto true, resulted in a wrong color.
- Fixes a bug in
Version 5.1.0 (29 May 2024)
- 🎉 New:
- Added new property
barcodesRegexFiltertoBarcodeRecognizerConfigurationfor Barcode Scanner RTU UI v2 screen. - Added support of the new 'Find and Pick' barcode scanning mode, see
FindAndPickScanningMode. - Added support for continuous scanning in the
BarcodeScannerViewcomposable. - Added support for new barcode format
BarcodeFormat.MICRO_PDF_417. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new class
BarcodeTextLocalizationand new propertylocalizationtoBarcodeScannerConfigurationto support localized strings.
- Added new property
- 🐞 Bug fixes:
- Fixed
SoundControllercrash on Android API <= 23. - Fixed behavior of 'Update' Button in Manual Count Edit Dialog for Barcode Scanner RTU UI v2 screen.
- Fixed
- ⚠️ Breaking changes:
- Replaced the class
BarCodeFormattedResultbyGenericDocumentsclass for barcode document parser output. - Added new classes for all the barcode document formats. See the API documentation for more details.
- Deleted deprecated
isLicenseActiveandisLicenseValidfromScanbotBarcodeScannerSDK. Please uselicenseInfo.isValidinstead. - Renamed
ScanbotPalettetoPalettefor consistency with RTU UI v2 configuration classes. BarcodeExtensionsFilternow accepts EAN and UPC barcodes with extensions only and all other formats without extensions.- Made the property
type: BarcodeFormat?inio.scanbot.sdk.ui_v2.barcode.configuration.BarcodeItemoptional. - Changed default UI behavior in Barcode Scanner RTU UI v2. If
BarcodeMappedData.barcodeImageinBarcodeItemMapperis empty - placeholder image will be shown. IfBarcodeMappedData.barcodeImageis set withBarcodeMappedDataExtension.barcodeFormatKeyconstant - the barcode image will be displayed.
- Replaced the class
- 🚙 Under the hood:
- Updated 3rd-party libraries:
- libjpeg-turbo to 2.1.5.1
- libpng to 1.6.40
- libtiff to 4.6.0
- Extracted parts of
ScanbotBarcodeScannerSDKAPI to theLicensableSdkandBarcodeScanningSdkinterfaces. - Migrated project to AGP 8.x.
- Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Added
Theme.AppCompat.NoActionBartheme as default for Barcode Scanner RTU UI v2 activity. - Added Consumer Proguard rules for RTU UI v2 modules.
- Updated 3rd-party libraries:
Version 5.0.0 (1 Mar 2024)
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
io.scanbot:rtu-ui-v2-barcodemodule dependency to access the new screen.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
- 🚀 Improvements:
- Optimized speed of the camera preview frames handling for all scanners.
- Changed the touch to focus square in
ScanbotCameraXViewto a circle.
- 🐞 Bug fixes:
- For
BarcodeFormat.PDF_417, 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.
- For
- ⚠️ Breaking changes:
- Renamed
RSS_14barcode format toDATABARandRSS_EXPANDEDtoDATABAR_EXPANDED. BatchBarcodeScannerActivityclass from RTU UI v1 is now marked as 'Deprecated'.- Removed
BarcodeFormat.CODE_25fromBarcodeFormat.COMMON_CODESlist. ZoomRangecan be created with any input values but will be limited under the hood by internalMIN_ZOOM(x0.2) andMAX_ZOOM(x100) values.
- Renamed
- 🚙 Under the hood:
- Class
SoundControllerwas renamed toSoundControllerImpland interfaceSoundControllerwas extracted.
- Class
Version 4.2.0 (07 Dec 2023)
- 🎉 New:
- Added support for new barcode type
GS1_COMPOSITE.
- Added support for new barcode type
- 🚀 Improvements:
- Added more control over how to handle GS1 messages in barcodes. See
BarcodeScannerAdditionalConfig.setGs1HandlingMode.
- Added more control over how to handle GS1 messages in barcodes. See
- ⚠️ Breaking Changes:
- The property
enableGS1Decodinghas been replaced by the enumGs1HandlingModeinBarcodeScannerAdditionalConfig. GS1codes are now handled differently for various barcode types. Using the default optionPARSEwill give the same result as before for all barcode types, except ofRSS_EXPANDED. Previously, forRSS_EXPANDED, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the optionDECODE.
- The property
Version 4.1.0 (30 Nov 2023)
- 🎉 New:
- Added new supported barcode formats -
BarcodeFormat.USPS_INTELLIGENT_MAIL,BarcodeFormat.ROYAL_MAIL,BarcodeFormat.JAPAN_POST,BarcodeFormat.ROYAL_TNT_POST,BarcodeFormat.AUSTRALIA_POSTandDATABAR_LIMITED.
- Added new supported barcode formats -
- 🚀 Improvements:
- Optimized default and custom preview/picture size selection in the
ScanbotCameraXView. - Optimized
setForceMaxSnappingSize(enabled: Boolean)behavior in theScanbotCameraXView. - Improved pinch-to-zoom gesture in
ScanbotCameraXView. - Added
setLifecycleOwner(lifecycleOwner: LifecycleOwner)method for view controller inBarcodeScannerViewto improve compatibility with Compose UI.
- Optimized default and custom preview/picture size selection in the
- 🐞 Bug fixes:
- Added
setBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>)method inBatchBarcodeScannerConfigurationclass.
- Added
- ⚠️ Breaking changes:
- If you are using
setPictureSize(pictureSize: Size),setCameraFrameSize(frameSize: Size)orsetPreviewFrameSize(frameSize: Size), make sure input Size has the correct orientation (fits the view or display size). - All scanner components have been switched to zoom ratio (values 1x, 2x, etc.) instead of linear zoom (from 0 to 1). Methods renamed:
setOpticalZoomRange()->setPhysicalZoomRange();setOpticalZoomLevel()->setPhysicalZoomRatio()inScanbotCameraXView,BarcodeScanAndCountViewandBarcodeScannerView.setPhysicalZoomRange()andsetPhysicalZoomRatio()accept possible zoom values from 0.5x up to 100x. NOTE: if the value sent to the camera is out of range for a specific device's capabilities, then the camera will try to set the max or min possible for that specific device. eg. Zoom 100x will only work on some high-end Samsung devices, whereas other devices will only have 12x-30x max. The same goes for minimum supported values, 0.5x is a wide-format camera module that does not exist on many Android devices.
- If you are using
- 🚙 Under the hood:
- Updated version of Nameof C++ library to v0.10.3.
- Disabled GPU acceleration for Redmi 9 models, Samsung Galaxy Grand Prime and devices with Android older than 6.
Version 4.0.1 (12 Sep 2023)
- 🚀 Improvements:
- Fixed false positives for Code 39 and Codabar barcodes.
- Fixed potential memory leak in all RTU-UI screens.
Version 4.0.0 (24 Aug 2023)
- 🚀 Improvements:
- 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.
- It is now possible to color each barcode on the barcode AR overlay. Use
- 🐞 Bug fixes:
- Removed conflicting "app_name" string resources from library modules.
- Fixed bug for
BarcodePolygonsStaticViewwhere it crashed ifbarcodeItemViewFactoryreturnsnullinstead 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.
- ⚠️ Breaking changes:
- Removed methods from
BarcodePolygonsViewandBarcodeScannerView.selectionOverlayControllerrelated to polygon and text view appearance. E.g.setStrokeColoretc. Please useBarcodeAppearanceDelegateinstead!
- Removed methods from
- 🚙 Under the hood:
- Removed
UNKNOWNbarcode type from the API as it is applicable only for internal usage. - Fixed declaration of attributes
polygonStrokeDeclinedColorandpolygonFillDeclinedColor.
- Removed
Version 3.7.0 (13 Jul 2023)
- 🎉 New:
- Added support for MicroQR codes.
- Added
setViewFinderEnabledmethod toBarcodeScannerConfigurationandBatchBarcodeScannerConfiguration- this toggles the visibility of the viewfinder. Defaults totrue. - Added a scanned barcode confirmation dialog in the
BarcodeScannerActivityRTU screen and a configuration classBarcodeConfirmationDialogConfigurationinBarcodeScannerConfigurationto modify the dialog UI. - Added Scan and Count of Barcodes feature. Use
BarcodeScanAndCountViewto integrate it into your app. - Added a new public interface for extracting images from PDF files: PdfImagesExtractor.
- Added a new implementation of
PdfImagesExtractorandPdfPagesExtractorbased on the Pdfium library. Add the optional 'io.scanbot:barcode-sdk-pdfium:SDK_VERSION' dependency to use it.
- 🚀 Improvements:
- Stripped down the Android dynamic symbol table in native libraries. As a result, the size of the native shared libraries has decreased.
- Improved accuracy and detection speed of QR_CODE, Code39, and Code93 barcode types.
- Added support for inverted PDF-417 barcodes.
- Optimized the size of native libraries integrated into the Scanbot Barcode SDK.
- Added a flag
detectFromNv21(..., isLive: Barcode)inScanbotBarcodeDetectorto detect barcodes on NV21 images in the static image mode.
- 🐞 Bug fixes:
- Fixed a crash within the barcode detector.
- Fixed a typo in Libraries.txt.
- 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.
- 🚙 Under the hood:
- Improved attribute handling to support the generation of one AAR.
- The BlackView and Caterpillar brands have been excluded from GpuAcceleration-supported devices.
- Improved cross-platform parameter handling from the refactored configurations structure.
- Added an OPTIONAL 3rd-party open-source dependency - the Pdfium library (licensed under the Apache License Version 2.0). By default, the Pdfium library is NOT added to the Scanbot Barcode SDK dependencies.
Version 3.6.1 (25 May 2023)
- 🐞 Bug fixes:
- Fixed a crash within the barcode detector.
- Fixed typo in Libraries.txt.
- 🚙 Under the hood:
- Improved attributes handling to support generation of one AAR.
Version 3.6.0 (03 May 2023)
- 🎉 New:
- Added type
BarcodeFormat.CODE_25that was previously considered as typeINDUSTRIAL_2OF5without checksum. TheINDUSTRIAL_2OF5checksum option is now removed and thus, depending on a valid checksum, we either returnINDUSTRIAL_2OF5orCODE_25.
- Added type
- 🚀 Improvements:
- Added
BarcodeItemViewPositionHandlerthat helps to adjust the position of the barcode description view in relation to the polygon contour. - Improved preview quality selection logic for
ScanbotCameraXView. - Stacked RSS barcode scanning has seen substantial improvements.
- Improved the
FinderOverlayViewbehavior when the UI container is dynamically resized (e.g., on keyboard events, etc.). - Added
setForceMaxSnappingQuality(enabled: Boolean)inIScanbotCameraViewinterface (implemented only in ScanbotCameraXView implementation): controls whether the camera should force the maximum possible quality for the snapped picture. As a result, the snapping speed could be significantly slower and the resulting image could be bigger. The default isfalse. - Added
setSnappingAutoAdjustment(enabled: Boolean)inIScanbotCameraView(implemented only in ScanbotCameraXView implementation): controls whether the camera should apply image post-processing (e.g., switching to low-light mode or HDR mode, applying face retouch, etc.). Implementation of post-processing depends on the vendor's implementation of the Camera API. The default isfalse.
- Added
- 🐞 Bug fixes:
- Fixed a visual glitch with
ScanbotCameraXViewon Xiaomi devices, which happened before the preview started. - Fixed a bug where
ScanbotCameraXViewsometimes threwRejectedExecutionExceptionafter the camera stopped. - Fixed Scanbot camera views not resolving
Contextcorrectly if used in Activity/Fragment with Hilt's@AndroidEntryPointannotation. - Fixed Scanbot RTU-UI scanners handling when the app is terminated in the background.
- Fixed a visual glitch with
- ⚠️ Breaking changes:
FinderAspectRatioandPageAspectRatioclasses are now deprecated and merged intoAspectRatiocommon class. Please useAspectRatioinstead.- Removed parameter
decodeStacks1D. The decoding of stacked barcodes is now handled automatically. FrameHandlerinterface was converted to an abstract class. If you have custom FrameHandlers, please add constructor invocation to your FrameHandler implementation.- Some of the Scanbot SDK artifact IDs have been changed and need to be updated in your
build.gradle'sdependenciesblock:- all users of
io.scanbot:sdk-crypto-persistenceshould change this dependency toio.scanbot:bundle-sdk-crypto-persistence(or toio.scanbot:barcode-sdk-crypto-persistenceif you are using Scanbot Barcode standalone SDK)
- all users of
- 🚙 Under the hood:
- Enabled
-fstack-protector-allon Android - Removed usage of
backward-cpplibrary - FrameHandlers won't return the result if
FrameHandler.isEnabledis set tofalseafter actual frame detection - Bumped Dagger version to 2.44
- Updated Kotlin library to 1.7.10
- Changed the default JPEG compression quality from 95 to 100 for
ScanbotCameraXView. As a result, snapped images will be bigger but of better quality
- Enabled
Version 3.5.0 (27 Feb 2023)
- 🎉 New:
- Added a new
automaticSelectionEnabledoption toSelectionOverlayConfigurationforBarcodeScannerActivityandBatchBarcodeScannerActivityRTU UI screens
- Added a new
- 🚀 Improvements:
- The raw string is returned for RSS Expanded barcodes that don't contain a GS1 string
- Updated
BarcodeScannerAdditionalConfigBuilderwithdecodeStacks1DandcodeDensityparameters
- 🐞 Bug fixes:
- Fixed the
ScanbotCameraXViewinstantiation error in Layout Editor - Fixed the memory leak of CameraManager in
ScanbotCameraXView - Fixed NPE in the
ScanbotCameraXViewwhen thestartPreview()function is called while theScanbotCameraXViewwas detached - Fixed an issue with
InitialScanDelayMsandDelayAfterScanMsoptions not working inBarcodeScannerConfigurationwhenBarcodeImageGenerationType.CAPTURED_IMAGEandBarcodeImageGenerationType.VIDEO_FRAMEoutput generation types were used - Fixed
ScanbotCameraXViewnot working after reattaching to a window
- Fixed the
- 🚙 Under the hood:
- Update TensorFlow Lite to 2.10
Version 3.4.0 (16 Dec 2022)
- 🎉 New:
- Added new parameter
decodeStacks1DinBarcodeScannerAdditionalConfigfor Barcode Scanner. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed.
- Added new parameter
- 🚀 Improvements:
- Improved recognition of inverted barcodes
- Improved performance and reduced false positive rate for stacked RSS barcodes
- Improved performance of DataMatrix and QR-codes
- 🚙 Under the hood:
- Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1)
Version 3.3.1 (17 Nov 2022)
- 🐞 Bug fixes:
- Fixed crashes on devices running Android 5 and 6 in some scenarios
- Fixed compatibility with 3rd party obfuscated libraries
- 🚙 Under the hood:
- Removed CommonsIo, CommonsCodec and CommonsLang dependencies
- Changed the package name to
io.scanbot.sdk.PUBLISH_ARTIFACT_IDfor the internal obfuscated classes - Improve allocated memory releasing mechanism for Barcode Scanner
Version 3.3.0 (25 Oct 2022)
- 🎉 New:
- Added
setVibrationEnabled(enable: Boolean)method to enable/disable the vibration feature inio.scanbot.sdk.util.snap.SoundControllerclass. NOTE:android.permission.VIBRATEpermission is required! - Added
bleepResId: IntandbleepUri: Uriparameters to theSoundControllerclass constructors to customize the bleep sound. By default the SDK specific sound will be played. - New barcode types are supported: IATA 2 of 5 and Industrial 2 of 5. Please note that they are disabled by default. See
BarcodeFormat BarcodePolygonsViewallows visualization of barcode contours when using classical components- Selection overlay layer based on
BarcodePolygonsViewcan be enabled forBarcodeScannerViewviaBarcodeScannerView.selectionOverlayController.setEnabled - Selection overlay can be enabled and configured for ready-to-use UI via
BarcodeScannerConfiguration.setSelectionOverlayConfiguration(...) - New properties
InitialScanDelayMsandDelayAfterScanMsinBarcodeScannerConfigurationallow delaying the initial scan and/or pausing the preview after scanning the barcode
- Added
- 🚀 Improvements:
- Improved crops and contours for detected barcodes
- 🐞 Bug fixes:
- Fixed a bug with RTU Barcode scanner not being able to produce image of
BarcodeImageGenerationType.CAPTURED_IMAGEwhen an instance ofIBarcodeFilteris set.
- Fixed a bug with RTU Barcode scanner not being able to produce image of
- ⚠️ Breaking changes:
- Moved and renamed
io.scanbot.sdk.ui.utils.ScanBeeperclass from the RTU-UI module to the packageio.scanbot.sdk.util.snap.SoundControllerin the basescanbot-sdk-1module.
- Moved and renamed
- 🚙 Under the hood:
- For
ScanbotCameraXView- whenCameraOpenCallbackis set - theonCameraOpenedmethod's call was moved later in the lifecycle: now called at the latest point in time when the camera preview is confirmed to be streaming. - Updated third-party libraries: Gson to 2.9.1, CommonsIo to 2.11.0 and CommonsCodec to 1.15
- For
Version 3.2.3 (16 Aug 2022)
- 🎉 New:
- Each RTU UI configuration and
ScanbotSDKInitializerclass now containsfromJson(input: String)andmodifyFromJsonConfiguration(<ScreenName>JsonConfiguration)methods allowing to create or edit the configuration classes using JSON input. The format of the JSON string should be compatible with<ScreenName>JsonConfigurationclass - Added new configuration option
codeDensityinBarcodeScannerAdditionalConfigfor Barcode Scanner - Added
codeDensityconfiguration option for Barcode Scanner RTU UI screen
- Each RTU UI configuration and
- 🚀 Improvements:
- Added new insets API for the finder box:
finderInsetsallows setting the finder edge padding from the camera preview edges.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.
- Added new insets API for the finder box:
- 🐞 Bug fixes:
- Fixed incorrect preview size calculation after granting permission for legacy
ScanbotCameraView
- Fixed incorrect preview size calculation after granting permission for legacy
- ⚠️ Breaking changes:
- Changed the default Camera View to ScanbotCameraXView based on CameraX API in all RTU UI screens
- Removed
EngineMode.Legacysupport for Barcode Scanner setFinderOffsetdeleted. UsefinderInsetvalues instead
- 🚙 Under the hood:
- Updated
compileSdkversion to 31 - Updated Android CameraX version to 1.1.0
- Updated the version of kotlin std library to 1.6.21
- Updated the version of Dagger library to 2.41
- Updated Boost C++ version to 1.79.0
setFinderMinPadding()works onfinderInsetsAPI
- Updated
Version 3.2.2 (13 Jun 2022)
- 🎉 New:
- Added
Fragment.registerForActivityResultOkmethod for calling activity from fragments for subscribing to success result with the new Activity Result API. - With the new
BarcodeScannerViewClassical component, the integration of barcode scanning with a Custom UI is now even easier!
- Added
- 🚀 Improvements:
- Improved behavior of FinderOverlayView and its child classes. Now any Finder View can inject other layouts inside itself and these parts would be properly positioned with the finder window changes.
There are 3 customizable parts:
- top - is a zone above the finder window. Can be used for inserting some hints.
- bottom - is a zone below the finder window. Can be used for inserting some hints.
- center - is a zone inside the finder window. Can be used for showing an overlay inside the finder window.
- Improved behavior of FinderOverlayView and its child classes. Now any Finder View can inject other layouts inside itself and these parts would be properly positioned with the finder window changes.
There are 3 customizable parts:
- 🐞 Bug fixes:
- Fixed a crash on specific PDF-417 codes with boarding passes.
- Fixed a potential crash in
ScanbotCameraXViewwhen taking a picture after the screen was paused.
- ⚠️ Breaking changes:
finder_descriptionview id is no longer used to place text views below the finder. Please use new API.
Version 3.2.1 (20 Apr 2022)
- 🐞 Bug fixes:
- Fixed a crash on specific PDF-417 codes with boarding passes
Version 3.2.0 (07 Apr 2022)
- 🚀 Improvements:
- Huge improvement on the speed and accuracy of 1D barcodes recognition.
- Native libraries size decreased by more than 20%
- 🐞 Bug fixes:
- By default, GPU acceleration has been enabled (issues with the Samsung S22 series devices are fixed).
- Fixed cropped images of 1D barcodes.
- 🚙 Under the hood:
- Updated the version of JSON for Modern C++ library to 3.10.2
- Updated the version of BOOST C++ library to 1.75.0
- Updated the version of OpenCV library to 4.5.3
- Updated the version of Nameof C++ library to 0.10.1
- Updated the version of LibTIFF library to 4.2.0
- Updated the version of ZXing-C++ library to 1.1.0
- Updated the version of OpenSSL library to 1.1.0h
- Updated the version of XNNPACK library to fb8d1f1b2 git commit
- Updated the version of TensorFlow library to 339ccc2b03 git commit
- Replaced the OpenJPEG library with libjpeg-turbo library 2.1.2
- Added the Skia library of 47b4b19 git commit
- Added the spdlog library of 1.9.2 version
Version 3.1.2 (11 Mar 2022)
- 🐞 Bug fixes:
- By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use
ScanbotBarcodeScannerSDKInitializer().allowGpuAcceleration(true). - Fixed an incorrectly thrown
FileAccessExceptioninScanbotBarcodeScannerSDKInitializerwhen cleaning deprecated blob files.
- By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use
Version 3.1.1 (23 Feb 2022)
- 🎉 New:
- Added the possibility to replace the cancel button in the RTU UI top toolbars with an icon. Please check the
configuration.setCancelButtonIcon()methods of the configuration. - Added a class
BarcodeDocumentParserto parse a string into a supported barcode document type. - Added support for the GS1 barcode document format, see
Gs1Document.
- Added the possibility to replace the cancel button in the RTU UI top toolbars with an icon. Please check the
- ⚠️ Breaking changes:
- Renamed the class
DisabilityCertificateDocumentin the barcode scanner toMedicalCertificateDocument.
- Renamed the class
- 🚙 Under the hood:
- Removed the usage of fragments in
BarcodeScannerActivityandBatchBarcodeScannerActivity.
- Removed the usage of fragments in
Version 3.1.0 (14 Jan 2022)
- 🎉 New:
- Added
fun setMinFocusDistanceLock(lock: Boolean)inBarcodeScannerConfigurationandBatchBarcodeScannerConfigurationfor RTU UI screens to lock in the minimum supported camera focus distance (supported only with CameraX) - Added
fun lockMinFocusDistance(lock: Boolean)inIScanbotCameraViewto lock in the minimum supported camera focus distance (supported only with CameraX) - New option
lowPowerMode: BooleaninBarcodeScannerAdditionalConfigurationforBarcodeScannerConfigurationandBatchBarcodeScannerConfigurationfor RTU UI screens andScanbotBarcodeDetectorclassical component
- Added
- 🚀 Improvements:
- Significantly improved recognition of Aztec barcodes
- Added method
setFinderMinPaddingto theFinderOverlayView, making it possible to change this value programmatically rather than only from XML
- 🐞 Bug fixes:
- Fixed a bug which made it impossible to start RTU UI activities with the legacy startActivityForResult approach
Version 3.0.8 (15 Dec 2021)
- 🎉 New:
- Added Scanbot implementation of AndroidX Activity Result API to every RTU UI activity. Please see the documentation for RTU UI components.
- Added properties
textWithExtensionandmetadatatoBarcodeItemto support barcode extensions of UPC and EAN barcodes - The results screen of the
BatchBarcodeScannerActivitynow displaystextWithExtensioninstead oftext - Added new boolean flag
enableNativeLogging(by default - false) inScanbotBarcodeScannerSDKInitializer#withLogging(useLog: Boolean, enableNativeLogging: Boolean)method - Support for barcode scanner results filtering in RTU-UI barcode scanning components
- Added 2 implementations of
IBarcodeFilterinterface -BarcodeFilterandBarcodeExtensionsFilter - New setters
setBarcodeFilter(barcodeFilter: IBarcodeFilter)inBarcodeScannerConfigurationandBatchBarcodeScannerConfigurationfor RTU UI screens - Added
setPreviewFrameSize(frameSize: Size)andsetAnalyzerFrameSize(frameSize: Size)methods inScanbotCameraXViewfor more flexible camera frame size modifications
- 🐞 Bug fixes:
- Fixed a crash in the barcode detector with Legacy engine mode on stable images
- Fix incorrect preview size resolving which caused the impossibility to perform scanning with the legacy ScanbotCameraView on some budget devices
- 🚀 Improvements:
- Improved recognition of small barcodes on large images
- Improved recognition of stacked RSS Expanded (GS1) barcodes
- Improved rectangular DataMatrix performance
- Increased performance on stable images with PDF-417 barcodes
- If the Scanbot SDK is not initialized, RTU UI screens are force closed without the RuntimeException
- ⚠️ Breaking changes:
- Renamed
setPreviewSize(previewSize: Size)tosetCameraFrameSize(frameSize: Size)inScanbotCameraXView - Constants
RESULT_LICENSE_INVALID,CANCELLATION_REASON_TIMEOUT,SCANNED_BARCODE_EXTRA,SCANNED_BARCODE_IMAGE_PATH_EXTRA,SCANNED_BARCODE_PREVIEW_FRAME_PATH_EXTRAwere deleted. Instead we have implemented AndroidX Activity Result API for RTU UI components. Also - if you prefer to stick with deprecatedstartActivityForResultapproach - we have added utility methods that encapsulate all the verbosity of getting the result entity from the activity's resultBundle. Please see the documentation for RTU UI components.
- Renamed
- 🚙 Under the hood:
- Updated the version of CWAC Camera library to 0.6.42
Version 3.0.7 (30 Nov 2021)
- 🐞 Bug fixes:
- Fixed a bug for when
BatchBarcodeScannerActivityignored the parameter passed tobatchBarcodescannerConfiguration.setCameraModule()
- Fixed a bug for when
Version 3.0.6 (5 Nov 2021)
- 🎉 New:
- Added
allowGpuAcceleration(enable: Boolean)method inScanbotBarcodeScannerSDKInitializerwhich enables GPU acceleration for TensorFlow ML models - Added
precompileGpuMlModels(precompilingCallback: () -> Unit)method inScanbotBarcodeScannerSDKInitializerwhich performs GPU ML models precompilation
- Added
- 🐞 Bug fixes:
- Fixed a bug in
BatchBarcodeScannerActivityfor when it doesn't show the camera preview after the camera permission approval - Fixed a bug when
BarcodeScannerActivitydoes not detect any barcodes with the image generation type VIDEO_FRAME - Fixed possible crash with Barcode Scanner activities after the camera permission request
- Fixed a bug in
- 🚙 Under the hood:
- Updated 3rd party libraries used in SDK, see [[Open Source Libraries in Scanbot SDK]]
Version 3.0.5 (13 Oct 2021)
- 🎉 New:
- A new method
forceClose()was added into our RTU UI components allowing to manually finish the RTU UI Screen (Activity) from the calling code - Now it is possible to access the current state of the flashlight using
isFlashEnabledmethod inIScanbotCameraView - Ready to Use UI components can now use CameraX under the hood. Use ScanbotBarcodeScannerSDKInitializer.useCameraXRtuUi(true) to enable it
startPreview()andstopPreview()methods are available forScanbotCameraXViewas well
- A new method
- 🚀 Improvements:
ScanbotCameraXViewnow uses better preview quality by defaultScanbotCameraXViewperformance was optimized
- 🐞 Bug fixes:
- Fixed long initialization of
ScanbotCameraXViewon foldable devices
- Fixed long initialization of
- 🚙 Under the hood:
- Refactored internal architecture of all RTU screens
- Removed RxJava and RxAndroid libraries from RTU dependencies
Version 3.0.4 (15 Sep 2021)
- 🎉 New:
- A new flag
allowXnnpackAccelerationwas added inScanbotBarcodeScannerSDKInitializerallowing to control whether the XNN pack optimizations should be used (trueby default)
- A new flag
- 🐞 Bug fixes:
- Fixed
MSI_PLESSEY_CHECKSUM_ALGORITHMS,STRIP_CHECK_DIGITSandCAMERA_ZOOMparameters being ignored in BatchBarcodeScannerConfiguration
- Fixed
- ⚠️ Breaking changes:
- The
corner_radiusattribute of FinderOverlayView was renamed tosbsdk_corner_radius
- The
Version 3.0.3 (3 Sep 2021)
- 🚀 Improvements:
- Improved recognition of UPC/EAN barcodes due to ink spread
- The
resultPointsfield of theBarcodeItemnow contains correct information about the contours of the detected barcodes
- 🐞 Bug fixes:
- Fixed a rotation issue in
ScanbotCameraXView
- Fixed a rotation issue in
- ⚠️ Breaking changes:
- Update compile and target SDK of the library to 30
- The
resultPointsfield of theBarcodeItemis no longer nullable
- 🚙 Under the hood:
- Bump CameraX version to stable 1.0.1 and CameraX View to 1.0.0-alpha28
Version 3.0.2 (6 Aug 2021)
- 🎉 New:
PictureCallbacknow contains information if the image was captured automatically- Added a new method
takePicture(acquireFocus: Boolean, isCapturedAutomatically: Boolean)inIScanbotCameraViewwhich should be called withisCapturedAutomatically = truefrom a custom AutoSnappingController - Additional parameter
stripCheckDigits: BooleaninBarcodeScannerAdditionalConfigforBarcodeDetectorclassical component - Additional parameter
stripCheckDigits: BooleaninBarcodeScannerAdditionalConfigurationfor RTU UI screens
- 🚀 Improvements:
- Significant performance improvements of the scanner
- All-zeros MSI Plessey barcodes are ignored now
- Additional
Informationfield in SEPA barcode document type now parsed correctly to match the specification
- ⚠️ Breaking changes:
- The parameter
imageOrientationinPictureCallbackwas replaced byCaptureInfowhich contains the orientation of the image and if it was captured automatically - IMPORTANT! Added
createprefix to names of all the methods inScanbotSDKandScanbotBarcodeScannerSDK, that return new instances of scanners, processors or storages. Methods without this prefix returnSingletonobjects. ReferenceandHintfields in SEPA barcode document type were replaced byPurposeandRemittanceto match the specification
- The parameter
- 🚙 Under the hood:
- Updated 3rd party libraries used in SDK (see Third-party Libraries)
Version 3.0.1 (5 Jul 2021)
- 🐞 Bug fixes:
- Fixed a crash after the license expiration in Classical components
Version 3.0.0 (1 Jul 2021)
- 🎉 New:
- Brand new “Next Generation” machine-learning-based barcode scanning engine with improved reliability and much faster performance
- Added new config parameter
engineMode: EngineModeinBarcodeScannerConfigforScanbotBarcodeDetector. By defaultScanbotBarcodeDetectorusesEngineMode.NextGenbased on a new ML model - Added new RTU config method
setEngineMode(engineMode: EngineMode)inBarcodeScannerConfiguration. By default -EngineMode.NextGen. - Added the possibility to customize the delay between successful frames for
BatchBarcodeScannerActivity. Default changed from 1000 ms to 0 ms (no delay)
- ⚠️ Breaking changes:
- Removed
disableMlDetectorconfig parameter inBarcodeScannerConfig. UseEngineMode.LegacyFastinstead. - Removed
BarcodeDetectorTypeclass andsetDetectorType()method from Barcode RTU screens. UsesetEngineMode(engineMode: EngineMode)instead. - Removed unused parameters
width: Intandheight: IntfromdetectFromJpeg(jpeg: ByteArray, frameOrientation: Int)method inScanbotBarcodeDetector
- Removed
- 🚙 Under the hood:
- New third-party libraries: xsimd, xtl und xtensor (see Libraries.txt)
Version 1.8.0 (17 Jun 2021)
- 🎉 New:
- Added a new supported barcode format
BarcodeFormat.MSI_PLESSEY. By default MSI-Plessey is disabled, you must explicitly pass it as an accepted type - Additional parameter
msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm>inBarcodeScannerAdditionalConfigforBarcodeDetectorclassical component - Additional parameter
msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm>inBarcodeScannerAdditionalConfigurationfor RTU UI screens - Added new parameter to the
SdkLicenseInfoclasslicenseStatusMessage: String?
- Added a new supported barcode format
- 🚀 Improvements:
- Clearer default values for user guidance strings on RTU UI screens
- 🐞 Bug fixes:
- Fixed a problem with UPC-A barcodes being recognized as EAN13 barcodes
- ⚠️ Breaking changes:
- Changed signature of the
handleLicenceStatusErrormethod inIScanbotSDKLicenseErrorHandler. Added additional parametererrorMessage : String
- Changed signature of the
Version 1.7.0 (21 Apr 2021)
- 🎉 New:
- Added a new option
setOpticalZoomRange(zoomRange: ZoomRange)inIScanbotCameraView - Added two new options
setCameraZoomFactor(zoomFactor: Float)andsetCameraZoomRange(zoomRange: ZoomRange)inBarcodeScannerConfigurationforBarcodeScannerActivityRTU screen - Added
gs1DecodingEnabledparameter inBarcodeScannerAdditionalConfigandBarcodeScannerAdditionalConfigurationto disable the decoding of FNC1 characters in CODE128 barcodes
- Added a new option
- 🚀 Improvements:
- Initialization parameters for
AESEncryptedFileIOProcessor(key: SecretKey?,initializationVector: ByteArray,salt: ByteArrayanditerationCount: Int) became public.
- Initialization parameters for
Version 1.6.0 (29 Mar 2021)
- 🎉 New:
- Now it is possible to set
ScanbotBarcodeDetectorto scan only the given types ofBarcodeDocumentFormatand filter out others automatically - Added
minimumTextLength,maximumTextLength,minimum1DQuietZoneSizeparams forScanbotBarcodeDetectorasBarcodeScannerAdditionalConfigentity. - Added new method
setBarcodeScannerAdditionalConfigurationfor RTUBarcodeScannerConfigurationto set theminimumTextLength,maximumTextLength,minimum1DQuietZoneSizeparams.
- Now it is possible to set
- 🚀 Improvements:
- Wrapped general JVM exceptions with specific Scanbot SDK alternatives to enhance crash report readability.
- Optimized memory consumption of
BarcodeDetector scanbot-sdk-crypto-persistencelibrary supports min API 21+
- 🐞 Bug fixes:
- Fixed calculation of the visible rectangle for
CameraView. It solves problems related to the scanning of documents which have borders close to the edge of the screen - Fixed multiple simultaneous detection results on a single ITF barcode
- Fixed calculation of the visible rectangle for
- ⚠️ Breaking changes:
- IMPORTANT! Classical component
ScanbotBarcodeDetectoris no longer a singleton! You should get your instance from SDK, configure it and use it as needed. CallingScanbotSDK(this).barcodeDetector()elsewhere will return a new instance of this component with default config. Refer to example implementation. - Removed a set of methods from
ScanbotBarcodeDetectorandBarcodeDetectorFrameHandler- code should be updated to use newsetConfigandmodifyConfigmethods andBarcodeScannerConfigentity. CheckableTextViewwas removed from the SDK. Consider the usage ofCheckedTextViewfrom Android SDK instead
- IMPORTANT! Classical component
- 🚙 Under the hood:
- Updated AndroidX Security Crypto library to the version
1.1.0-alpha03 - Removed AndroidX
security-identity-credentiallibrary from dependencies
- Updated AndroidX Security Crypto library to the version
Version 1.5.1 (10 Mar 2021)
- ⚠️ Breaking changes:
- Removed barcode format
BarcodeFormat.MSI_PLESSEY
- Removed barcode format
Version 1.5.0 (22 Feb 2021)
- 🎉 New:
- Added support of parsing of Swiss QR codes in Barcode scanner
- 🚙 Under the hood:
- Optimized delay handling between camera frames in
BarcodeDetectorFrameHandler
- Optimized delay handling between camera frames in
Version 1.4.0 (02 Feb 2021)
- 🎉 New:
- Implemented an encrypted storage for the barcode images
- 🐞 Bug fixes:
- Fix CameraX view bug with contour detector mirroring in landscape for the front facing camera
Version 1.3.2 (15 Jan 2021)
- 🐞 Bug fixes:
- Further fixes for the "double scan" issue with the RTU UI
BarcodeScannerActivity
- Further fixes for the "double scan" issue with the RTU UI
Version 1.3.1 (12 Jan 2021)
- 🐞 Bug fixes:
- Fixed a concurrency issue (
RejectedExecutionException) for the frame handling inCameraView - Fixed a double scan issue for
BarcodeScannerActivityRTU screen - Fixed a
ShutterButtonanimation
- Fixed a concurrency issue (
Version 1.3.0 (17 Dec 2020)
- 🎉 New:
- Added Front Facing Camera support (BETA). Call
setCameraModule(CameraModule.FRONT)inScanbotCameraVieworScanbotCameraXViewto enable it. - Added
CAMERA_MODULEconfiguration parameter for RTU screens - Added
setDetectorTypeconfiguration parameter for barcode scanner and related RTU UI screens. It allows disabling model-based detection which might be helpful to increase the performance in some cases
- Added Front Facing Camera support (BETA). Call
- 🚀 Improvements:
- Improved detection of ITF barcodes
- 🐞 Bug fixes:
- The flash button on RTU UI screens is not shown anymore on devices without a flashlight
- Fixed live detection that was not working on some devices with non-standard camera frame resolution
- 🚙 Under the hood:
- Updated the version of CWAC Camera library to 0.6.40.
Version 1.2.2 (7 Dec 2020)
- 🐞 Bug fixes:
- Fixed incorrect processing of the text part in DataMatrix barcodes with binary data
- Fixed rare case of the QR-codes processing which might lead to a crash
- Some redundant logs were removed
Version 1.2.1 (3 Dec 2020)
- 🎉 New:
BarcodeScannerActivityandBatchBarcodeScannerActivitynow support a possibility to set a timeout viasetAutoCancelTimeoutmethod in seconds. In this case, you will getCANCELLATION_REASON_TIMEOUT= true as an extra forRESULT_CANCELEDin activity result
- 🚀 Improvements:
- Better recognition of rotated PDF417 codes
Version 1.2.0 (23 Nov 2020)
- 🚀 Improvements:
- Huge improvements in detection of barcodes of PDF417 type
- 🐞 Bug fixes:
- Fixed bug when RTU UI screens might lose their configuration or crash after going to a paused state
- Fixed bug when
BatchBarcodeScannerActivitywas picking only the first barcode on each scanned frame
- 🚙 Under the hood:
- Dagger library was updated to 2.25.2
Version 1.1.7 (29 Oct 2020)
- 🎉 New:
- Added
FinderPictureCallbackthat automatically crops the visibleFinderOverlayViewzone and fixes an orientation of the snapped image - Optical pinch-to-zoom feature for the
CameraViewand the digital zoom feature (seeZoomFinderOverlayView) - Consumer proguard rules are now integrated into the library
FormattedBarcodeDataMapper'sDEFAULTimplementation was removed.nullis new default value forBatchBarcodeScannerActivity.newIntentmethod instead. See example.
- Added
- 🚀 Improvements:
- Changed
PictureCallbackimplementation - it is an abstract class that implementsBasePictureCallbackinterface - Improved recognition of barcodes when scanning matrix barcodes from a short distance
- Increased camera preview start speed
- Improved recognition of damaged DataMatrix barcodes
- Changed
- 🐞 Bug fixes:
- Added the "force fetch" mechanism for
ScanbotBarcodeDetectorML blobs.
- Added the "force fetch" mechanism for
- 🚙 Under the hood:
- Updated compile SDK of the library to 29
Version 1.1.6 (16 Sep 2020)
- 🚀 Improvements:
- Improved recognition of damaged DataMatrix barcodes
- 🚙 Under the hood:
- Upgraded some libs to latest versions: OpenCV 4.4.0, Kotlin Standard Library 1.4, added OpenJPEG 2.3.1
Version 1.1.5 (20 Aug 2020)
- 🐞 Bug fixes:
- Fixed hanging frame processing in
CameraViewafter pausing if the orientation was not locked
- Fixed hanging frame processing in
Version 1.1.4 (14 Aug 2020)
- 🎉 New:
- Added ability to scan multiple barcodes in a row with the new RTU UI Component BatchBarcodeScannerActivity
- 🐞 Bug fixes:
- Fixed a crash for barcodes with non-string raw data
- Binary raw data for barcodes now filled correctly in
BarcodeItem.rawBytes
Version 1.1.3 (16 Jul 2020)
- 🚀 Improvements:
- Improved barcode detection model
- Improved handling of ink spread issues with Code128 barcodes
- Improved barcode and QR code live detection especially for very dense codes
Version 1.1.2 (9 Jul 2020):
- 🚀 Improvements:
- Added new barcode format
BarcodeFormat.MSI_PLESSEY - Minor bugfixes and improvements
- Added new barcode format
Version 1.1.1 (8 Apr 2020):
- 🚀 Improvements:
- Updated ProGuard config
- Improved detection from still images
- Minor bugfixes and improvements
Version 1.1.0 (11 Mar 2020):
- 🚀 Improvements:
- Updated minimum Android API level to 21 (Android 5.0)
- Updated ProGuard config
- Minor bugfixes and improvements
Version 1.0.0 (31 Jan 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