Release Notes for Android SDK - 10.x
10.4.3002 (03/07/2025)
Changes
- Updated
BarcodeScannercomponent. Multi-frame cross verification is enabled by default to prevent misreading. - Minor updates for cross-platform development.
10.4.3001 (02/11/2025)
New
- Updated
BarcodeScannercomponent to support multiple barcodes scanning.- Added a new method
setScanningModeto the classBarcodeScannerConfigfor users to switch between the single barcode scanning mode and multiple barcodes scanning mode. - Added a new enumeration class
EnumScanningModeto specify the scanning mode.
- Added a new method
- Added a new method
setCameraToggleButtonVisibleto the classBarcodeScannerConfig. Users can use this method to show or hide the camera toggle button.
10.4.3000 (01/23/2025)
Fixed
- Fixed a security issue by rebuilding the affected libraries with enhanced protection mechanisms.
10.4.2003 (12/26/2024)
New
- Added a new component
BarcodeScanner. Users can quickly set up a barcode scanning app with the built-in UI ofBarcodeScanner. The following classes are added to use theBarcodeScannercomponent:BarcodeScannerActivity: The main class ofBarcodeScanner. It is an activity class that implements barcode decoding features.BarcodeScannerConfig: The class that provides barcode scanning configurations.BarcodeScanResult: The result class.EnumResultStatus: An enumeration class that describes the result status.
10.4.2002 (12/16/2024)
Fixed
- Fixed a bug where the app might be blocked by the method
initLicense.
10.4.2001 (11/13/2024)
Fixed
- Internal changes to prevent crash bugs in barcode decoding.
10.4.2000 (10/11/2024)
Highlights
- Improved the read rate and the speed of the following barcode formats:
- EAN13
- DotCode
- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes.
Improved
- Improved the read rate and the speed of the following barcode formats:
- EAN13
- DotCode
- Updated the error handling logic of
capturing&startCapturingmethods. The methods will be able to clearly report where the error occurred if the capturing fails due to a licensing issue. - Updated the error message of
initLicensemethod. The method will return more detailed messages when failed to initialize the license. Warnings will be available if license initialization is successful but a part of the license key is invalid.
New
- Added internal logics for usage count.
- Added support for decoding add-on barcodes.
- Added new properties to the
QRCodeDetailsclassgetDataMaskPatterngetCodewords
- Added internal logics for usage count.
- Added a new callback method
onRawTextLinesReceivedto the classIntermediateResultReceiver. - Added new error codes
- -10076: The license is initialized successfully but detected invalid content in your key.
- -30063: [Barcode Reader] No license found.
- -40103: [Label Recognizer] No license found.
- -50058: [Document Normalizer] No license found.
- -90012: [Code Parser] No license found.
- Added a new enumeration member
IRUT_RAW_TEXT_LINESto the enumerationIntermediateResultUnitType. - Add a new charge way,
TimeSliceCount. - Changed the maximum length of the
deviceFriendlyNameto 255. - Added to-the-latest overlapping feature. You can use
enableLatestOverlappingmethod ofMultiFrameResultCrossFilterclass to enable this feature.
Fixed
- Fixed a bug where the
CharacterModelis not correctly loaded under macOS operation system. - Small fixes and tweaks.
- Fixed a crash bug caused by the usage of RegEx.
- Small fixes and tweaks.
- Fixed a bug where
CaptureVisionRouter.startCapturingwould erroneously halt the fetching process when its status was running, leading to an unnecessary stop and restart of the fetching operation. - Fixed a bug where
DirectoryFetcherwould prematurely read an image before verifying if the buffer was full, resulting in potential loss of the image that did not make it into the buffer upon callingstopFetching. - Fixed a bug that might cause
GS1_DATABAR_EXPANDED_STACKEDbarcode unread.
Changed
- Updated the Enumeration number of
EnumBarcodeFormat.BF_ALLto 0xFFFFFFFEFFFFFFFF. - Updated the internal logic of licensing error message reporting.
- Changed the template loading mode. The library will read all template files under the Templates folder where the DLL file is located.
10.2.1100 (05/15/2024)
- Added new methods
toJson&fromJsonto theSimplifiedBarcodeReaderSettingsclass.
10.2.10 (04/16/2024)
Improved
- Security update for
DynamsoftBarcodeReaderlibrary and other corresponding libraries. - Supported multiple instances of the class
CaptureVisionRouter. - Improved the usage count logic of the concurrent license mode.
- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well.
- Improved the barcode decoding performance:
- Improved the accuracy when decoding OneD & PDF417 barcodes.
- Improved the readability of dense DataMatrix codes.
New
- Updated the template system
- Added
StringLengthRangeforTextDetectionMode. - Added Argument
BarcodeFormatforDPMCodeReadingModes. Currently, you can specify “BF_DATAMATRIX” or “BF_QR_CODE” for the parameter. - Added
ReferenceTaskNameArrayunderLocation.ReferenceObjectFilterto filter the reference objects generated by the task name. - Added the support of the
OutputTaskSettingdefinition. The following subparameters are available inOutputTaskSettingobject:OutputConditionTaskResultArrayTargetROIDefNameTaskSettingNameArrayBackwardReferenceOutputReferenceTaskNameArrayReferenceResultTypeArrayOperator
Offsetparameter is optimized.- Added
ReferenceObjectTypeto specify whether the reference object is an atomic object or the whole image. - Added
ReferenceXAxis&ReferenceYAxisto define the X & Y axis. - Modified
FirstPoint,SecondPoint,ThirdPoint&FourthPoint. You can specify whether the X or Y coordinate of the point is measured by percentage. - Deprecated
ReferenceObjectSizeType.
- Added
- Added
- The following classes are migrated from
DynamsoftCoremodule toDynamsoftCaptureVisionRoutermodule: - Added a new call back method
onShortLinesUnitReceivedto theIntermediateResultReceiverclass. - Added methods
pauseCapturingandresumeCapturing. Two new enumeration members,CS_PAUSEDandCS_RESUMED, are added toCapturedStateas well. - Added a new method
getDecodedBarcodesResultto theCapturedResultclass to get all the result items with the typeCRIT_BARCODE. - Added new methods to the
CandidateBarcodeZonesUnitclass to add, remove or set the candidate barcode zones.CandidateBarcodeZoneclass is added to store the information of a single candidate barcode zone. - Added new methods to the
LocalizedBarcodesUnitclass to add, remove or set the localized barcode elements. - Added a new method
setImageDatato theScaledUpBarcodeImageUnitclass. - Added new methods to the
DeformationResistedBarcodeImageUnitclass to add, remove or set the deformation-resisted barcode.DeformationResistedBarcodeclass is added to store the deformation-resisted barcode information. - Added a new method
setLocationtoComplementedBarcodeImageUnitclass. - Added new methods to the
DecodedBarcodesUnitclass to set or remove the decoded barcode elements. - Added the following methods to the
DecodedBarcodesResultclass:retainrelease.
- Added new constructors to the following classes.
- Added the following methods to the
DecodeBarcodeElementclass to modify the basic information of the barcode:setFormatsetTextsetBytessetConfidence
- Added a new method
setPossibleFormatsto theLocalizedBarcodeElement. - Added the following methods to the
ObservationParametersclass to specify theinput onlyresult unit.setResultUnitTypesOnlyForInputgetResultUnitTypesOnlyForInput
- Added the following methods to the
RegionObjectElementclass to support the intermediate result modification.setLocationcloneretainrelease
- Added a new method
replaceto theIntermediateResultUnitclass to support the replacement of intermediate result units. - Added
setImageDatamethods to the following classes: - Added new methods to the
PredetectedRegionsUnitclass to add, remove or set the predetected regions. - Added new methods to the
LineSegmentsUnitclass to add, remove or set the line segments. - Added new methods to the
TextZonesUnitclass to add, remove or set the text zones. Added a new classTextZoneto store the information of a single text zone. - Added a new method
setContoursto theContourUnitclass. - Added new methods to the
TextureDetectionResultUnitclass to set the X & Y spacing. - Added a new intermediate result unit,
ShortLinesUnit, to output the detected short lines. The corresponding enumeration memberIRUT_SHORT_LINESis added to theEnumIntermediateResultUnitType. - Added the following methods to the
CapturedResultItemclassgetTargetROIDefNamegetTaskNameretainrelease
- Added the following new error codes
EC_IMAGE_SIZE_NOT_MATCHEC_IMAGE_PIXEL_FORMAT_NOT_MATCHEC_SECTION_LEVEL_RESULT_IRREPLACEABLEEC_AXIS_DEFINITION_INCORRECTEC_TEXT_LINE_GROUP_LAYOUT_CONFLICTEC_TEXT_LINE_GROUP_REGEX_CONFLICTEC_RESULT_TYPE_MISMATCH_IRREPLACEABLEEC_LICENSE_CACHE_USED
- Added the following methods to the
CapturedResultclass.- A new override constructor.
retainrelease
- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the
EnumImagePixelFormat. - Added return value for the
retainmethod of theIntermediateResultUnitclass. The method will return the pointer of the currentIntermediateResultUnit.
Breaking Changes
- Changed the logic of the
stopCapturingmethod.CaptureResultReceiverwill not receive results afterstopCapturingis triggered withwaitForRemainingTasksfalse.- Support stop capturing after the
pauseCapturingmethod is triggered.
- Changed the logic of the
capturedResultItemTypessetting ofSimplifiedCaptureVisionSettings:- If the result item types don’t match the specified template, the method
updateSettingswill return the error codeEC_PARAMETER_VALUE_INVALIDwith the message “The captured result item types do not match the task configurations in the template”. - Based on the
capturedResultItemTypessetting, the irrelevant tasks will be removed from the template. - The
capturedResultItemTypesshould include at least one of theCRIT_BARCODE,CRIT_TEXT_LINE,CRIT_DETECTED_QUAD,CRIT_NORMALIZED_IMAGE. Otherwise, the methodupdateSettingswill return the error codeEC_PARAMETER_VALUE_INVALIDwith the message “The captured result item types should contain at least one task result type”.
- If the result item types don’t match the specified template, the method
- Refactored the
Contourclass. Please view API reference -Contourclass for more information.
Fixed
- Fixed a crash bug that might happen when triggering the
setNextImageToReturnmethod of theImageSourceAdapterclass. - Fixed a bug where error messages are not output when parsing the parameter templates.
- Fixed a misreading bug of the PDF417 barcodes on the South Carolina driver’s license.
- Internal changes to prevent crash bugs in barcode decoding.
- Fixed a bug where the capture might be blocked due to the network latency.
- Fixed the bugs of usage count.
- Count twice for a single PDF417 barcode when a code parser task is implemented on the result.
- The barcode decoding result might not be uploaded timely.
- Patchcode might be counted even if there is no Patchcode license item.
10.0.21 (12/12/2023)
- Updated the internal package dependencies rules.
10.0.20 (10/26/2023)
DynamsoftBarcodeReader SDK has been revamped to integrate with DynamsoftCaptureVision (DCV) architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually.
DynamsoftCaptureVisionarchitecture consists of:ImageSourceAdapter(ISA), the standard input interface for you to convert image data from different sources into the standard input image data. In addition,ISAincorporates an image buffer management system that allows instant access to the buffered image data.CaptureVisionRouter (CVR), an engine for you to update templates, retrieve images fromISA, coordinate corresponding functional products and dispatch the results to the receivers.- Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required.
- Result receiver interfaces. You can implement
CapturedResultReceiver (CRR)to receive theCapturedResultsthat output when the processing on an image is finalized. You can also implementIntermediateResultReceiver (IRR)to get timely results from different stages of the workflow.
- The parameter template system has been comprehensively upgraded.
- Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file.
- Extended the feature of the ROI system. By configuring the
target ROIparameters, you can not only specify anROIon the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. - The image processing parameters are separated from the task parameters so that the template settings become more clear and concise.
- The
intermediate resultsystem has been improved.- Achieved the
intermediate resultsharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable theintermediate resultsharing. The library can recognize all the reusable results automatically based on the template file you uploaded. - The readability and interactivity of the
intermediate resultsare enhanced.IntermediateResultReceiverallows you to receive up to 27 different types ofIntermediate results. You can clearly read which stage of the algorithm each result is output from. In addition,IntermediateResultManagerallows you to intervene in the workflows by modifying theintermediate results.
- Achieved the
The APIs of Dynamsoft Barcode Reader are comprehensively updated. Please follow the view upgrade instructions to update your code.