Release Notes for Android SDK - 10.x
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
&startCapturing
methods. 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
initLicense
method. 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
QRCodeDetails
classgetDataMaskPattern
getCodewords
- Added internal logics for usage count.
- Added a new callback method
onRawTextLinesReceived
to 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_LINES
to the enumerationIntermediateResultUnitType
. - Add a new charge way,
TimeSliceCount
. - Changed the maximum length of the
deviceFriendlyName
to 255. - Added to-the-latest overlapping feature. You can use
enableLatestOverlapping
method ofMultiFrameResultCrossFilter
class to enable this feature.
Fixed
- Fixed a bug where the
CharacterModel
is 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.startCapturing
would 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
DirectoryFetcher
would 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_STACKED
barcode unread.
Changed
- Updated the Enumeration number of
EnumBarcodeFormat.BF_ALL
to 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
&fromJson
to theSimplifiedBarcodeReaderSettings
class.
10.2.10 (04/16/2024)
Improved
- Security update for
DynamsoftBarcodeReader
library 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
StringLengthRange
forTextDetectionMode
. - Added Argument
BarcodeFormat
forDPMCodeReadingModes
. Currently, you can specify “BF_DATAMATRIX” or “BF_QR_CODE” for the parameter. - Added
ReferenceTaskNameArray
underLocation.ReferenceObjectFilter
to filter the reference objects generated by the task name. - Added the support of the
OutputTaskSetting
definition. The following subparameters are available inOutputTaskSetting
object:OutputCondition
TaskResultArray
TargetROIDefName
TaskSettingNameArray
BackwardReferenceOutput
ReferenceTaskNameArray
ReferenceResultTypeArray
Operator
Offset
parameter is optimized.- Added
ReferenceObjectType
to specify whether the reference object is an atomic object or the whole image. - Added
ReferenceXAxis
&ReferenceYAxis
to 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
ReferenceObjectSize
Type.
- Added
- Added
- The following classes are migrated from
DynamsoftCore
module toDynamsoftCaptureVisionRouter
module: - Added a new call back method
onShortLinesUnitReceived
to theIntermediateResultReceiver
class. - Added methods
pauseCapturing
andresumeCapturing
. Two new enumeration members,CS_PAUSED
andCS_RESUMED
, are added toCapturedState
as well. - Added a new method
getDecodedBarcodesResult
to theCapturedResult
class to get all the result items with the typeCRIT_BARCODE
. - Added new methods to the
CandidateBarcodeZonesUnit
class to add, remove or set the candidate barcode zones.CandidateBarcodeZone
class is added to store the information of a single candidate barcode zone. - Added new methods to the
LocalizedBarcodesUnit
class to add, remove or set the localized barcode elements. - Added a new method
setImageData
to theScaledUpBarcodeImageUnit
class. - Added new methods to the
DeformationResistedBarcodeImageUnit
class to add, remove or set the deformation-resisted barcode.DeformationResistedBarcode
class is added to store the deformation-resisted barcode information. - Added a new method
setLocation
toComplementedBarcodeImageUnit
class. - Added new methods to the
DecodedBarcodesUnit
class to set or remove the decoded barcode elements. - Added the following methods to the
DecodedBarcodesResult
class:retain
release
.
- Added new constructors to the following classes.
- Added the following methods to the
DecodeBarcodeElement
class to modify the basic information of the barcode:setFormat
setText
setBytes
setConfidence
- Added a new method
setPossibleFormats
to theLocalizedBarcodeElement
. - Added the following methods to the
ObservationParameters
class to specify theinput only
result unit.setResultUnitTypesOnlyForInput
getResultUnitTypesOnlyForInput
- Added the following methods to the
RegionObjectElement
class to support the intermediate result modification.setLocation
clone
retain
release
- Added a new method
replace
to theIntermediateResultUnit
class to support the replacement of intermediate result units. - Added
setImageData
methods to the following classes: - Added new methods to the
PredetectedRegionsUnit
class to add, remove or set the predetected regions. - Added new methods to the
LineSegmentsUnit
class to add, remove or set the line segments. - Added new methods to the
TextZonesUnit
class to add, remove or set the text zones. Added a new classTextZone
to store the information of a single text zone. - Added a new method
setContours
to theContourUnit
class. - Added new methods to the
TextureDetectionResultUnit
class to set the X & Y spacing. - Added a new intermediate result unit,
ShortLinesUnit
, to output the detected short lines. The corresponding enumeration memberIRUT_SHORT_LINES
is added to theEnumIntermediateResultUnitType
. - Added the following methods to the
CapturedResultItem
classgetTargetROIDefName
getTaskName
retain
release
- Added the following new error codes
EC_IMAGE_SIZE_NOT_MATCH
EC_IMAGE_PIXEL_FORMAT_NOT_MATCH
EC_SECTION_LEVEL_RESULT_IRREPLACEABLE
EC_AXIS_DEFINITION_INCORRECT
EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT
EC_TEXT_LINE_GROUP_REGEX_CONFLICT
EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE
EC_LICENSE_CACHE_USED
- Added the following methods to the
CapturedResult
class.- A new override constructor.
retain
release
- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the
EnumImagePixelFormat
. - Added return value for the
retain
method of theIntermediateResultUnit
class. The method will return the pointer of the currentIntermediateResultUnit
.
Breaking Changes
- Changed the logic of the
stopCapturing
method.CaptureResultReceiver
will not receive results afterstopCapturing
is triggered withwaitForRemainingTasks
false.- Support stop capturing after the
pauseCapturing
method is triggered.
- Changed the logic of the
capturedResultItemTypes
setting ofSimplifiedCaptureVisionSettings
:- If the result item types don’t match the specified template, the method
updateSettings
will return the error codeEC_PARAMETER_VALUE_INVALID
with the message “The captured result item types do not match the task configurations in the template”. - Based on the
capturedResultItemTypes
setting, the irrelevant tasks will be removed from the template. - The
capturedResultItemTypes
should include at least one of theCRIT_BARCODE
,CRIT_TEXT_LINE
,CRIT_DETECTED_QUAD
,CRIT_NORMALIZED_IMAGE
. Otherwise, the methodupdateSettings
will return the error codeEC_PARAMETER_VALUE_INVALID
with 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
Contour
class. Please view API reference -Contour
class for more information.
Fixed
- Fixed a crash bug that might happen when triggering the
setNextImageToReturn
method of theImageSourceAdapter
class. - 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.
DynamsoftCaptureVision
architecture 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,ISA
incorporates 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 theCapturedResults
that 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 ROI
parameters, you can not only specify anROI
on 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 result
system has been improved.- Achieved the
intermediate result
sharing 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 result
sharing. The library can recognize all the reusable results automatically based on the template file you uploaded. - The readability and interactivity of the
intermediate results
are enhanced.IntermediateResultReceiver
allows 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,IntermediateResultManager
allows 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.