Class BlinkIdMultiSideRecognizer

java.lang.Object
com.microblink.blinkid.entities.Entity<T>
com.microblink.blinkid.entities.recognizers.Recognizer<BlinkIdMultiSideRecognizer.Result>
com.microblink.blinkid.entities.recognizers.blinkid.generic.BlinkIdMultiSideRecognizer
All Implemented Interfaces:
android.os.Parcelable, CombinedRecognizer, BarcodeScanningStartedCallbackOptions, FaceImageDpiOptions, FullDocumentImageDpiOptions, SignatureImageDpiOptions, EncodeFaceImageOptions, EncodeFullDocumentImagesOptions, EncodeSignatureImageOptions, FullDocumentImageExtensionOptions, FaceImageOptions, FullDocumentImageOptions, SignatureImageOptions, ClassifierCallbackOptions, JsonizableEntity

A generic recognizer which can scan front and back side of the document.
  • Field Details

  • Constructor Details

    • BlinkIdMultiSideRecognizer

      public BlinkIdMultiSideRecognizer()
  • Method Details

    • setReturnFaceImage

      public void setReturnFaceImage(boolean returnFaceImage)
      Description copied from interface: FaceImageOptions
      Sets whether face image from document should be available in FaceImageResult. If enabled, get image using FaceImageResult.getFaceImage() By default, this is set to 'false'. IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, android.content.Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED
      Specified by:
      setReturnFaceImage in interface FaceImageOptions
      Parameters:
      returnFaceImage - whether face image will be available in FaceImageResult.
    • shouldReturnFaceImage

      public boolean shouldReturnFaceImage()
      Description copied from interface: FaceImageOptions
      Returns whether face image will be available in FaceImageResult. By default, this is set to 'false'.
      Specified by:
      shouldReturnFaceImage in interface FaceImageOptions
      Returns:
      whether face image will be available in FaceImageResult.
    • setValidateResultCharacters

      public void setValidateResultCharacters(boolean validateResultCharacters)
      Allow only results containing expected characters for a given field. Each field is validated against a set of rules. All fields have to be successfully validated in order for a recognizer state to be com.microblink.blinkid.recognition.RecognitionSuccessType.SUCCESSFUL. Setting is used to improve scanning accuracy. By default, this is set to 'true'.
    • shouldValidateResultCharacters

      public boolean shouldValidateResultCharacters()
      Allow only results containing expected characters for a given field. Each field is validated against a set of rules. All fields have to be successfully validated in order for a recognizer state to be com.microblink.blinkid.recognition.RecognitionSuccessType.SUCCESSFUL. Setting is used to improve scanning accuracy. By default, this is set to 'true'.
    • setScanCroppedDocumentImage

      public void setScanCroppedDocumentImage(boolean scanCroppedDocumentImage)
      Process only cropped document images with corrected perspective (frontal images of a document). This only applies to still images - video feed will ignore this setting. By default, this is set to 'false'.
    • shouldScanCroppedDocumentImage

      public boolean shouldScanCroppedDocumentImage()
      Process only cropped document images with corrected perspective (frontal images of a document). This only applies to still images - video feed will ignore this setting. By default, this is set to 'false'.
    • setSaveCameraFrames

      public void setSaveCameraFrames(boolean saveCameraFrames)
      Save the raw camera frames at the moment of the data extraction or timeout. This significantly increases memory consumption. The scanning performance is not affected. By default, this is set to 'false'.
    • shouldSaveCameraFrames

      public boolean shouldSaveCameraFrames()
      Save the raw camera frames at the moment of the data extraction or timeout. This significantly increases memory consumption. The scanning performance is not affected. By default, this is set to 'false'.
    • setEncodeFullDocumentImage

      public void setEncodeFullDocumentImage(boolean encodeFullDocumentImage)
      Description copied from interface: EncodeFullDocumentImagesOptions
      Sets whether full document image should be encoded in JPEG format and written into the corresponding recognition result. By default, this is set to 'false'.
      IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED
      Specified by:
      setEncodeFullDocumentImage in interface EncodeFullDocumentImagesOptions
      Parameters:
      encodeFullDocumentImage - whether full document images should be encoded in JPEG format and written into the corresponding recognition result.
    • shouldEncodeFullDocumentImage

      public boolean shouldEncodeFullDocumentImage()
      Description copied from interface: EncodeFullDocumentImagesOptions
      Returns whether encoding of full document images and writing them into the recognition result is enabled. By default, this is set to 'false'.
      Specified by:
      shouldEncodeFullDocumentImage in interface EncodeFullDocumentImagesOptions
      Returns:
      whether encoding of full document images and writing them into the recognition result is enabled.
    • setAllowUnverifiedMrzResults

      public void setAllowUnverifiedMrzResults(boolean allowUnverifiedMrzResults)
      Allow reading of standard MRZ (Machine Readable Zone) which gets successfully parsed, but check digits are incorrect (do not comply with the ICAO standard). Final recognizer state is not affected. By default, this is set to 'true'.
    • shouldAllowUnverifiedMrzResults

      public boolean shouldAllowUnverifiedMrzResults()
      Allow reading of standard MRZ (Machine Readable Zone) which gets successfully parsed, but check digits are incorrect (do not comply with the ICAO standard). Final recognizer state is not affected. By default, this is set to 'true'.
    • setEncodeFaceImage

      public void setEncodeFaceImage(boolean encodeFaceImage)
      Description copied from interface: EncodeFaceImageOptions
      Sets whether face image from document should be encoded in JPEG format and written into the corresponding recognition result. By default, this is set to 'false'.
      IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, android.content.Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED
      Specified by:
      setEncodeFaceImage in interface EncodeFaceImageOptions
      Parameters:
      encodeFaceImage - whether face image should be encoded in JPEG format and written into the corresponding recognition result.
    • shouldEncodeFaceImage

      public boolean shouldEncodeFaceImage()
      Description copied from interface: EncodeFaceImageOptions
      Returns whether encoding of face image from document and writing it into the recognition result is enabled. By default, this is set to 'false'.
      Specified by:
      shouldEncodeFaceImage in interface EncodeFaceImageOptions
      Returns:
      whether encoding of face image from document and writing it into the recognition result is enabled.
    • setReturnSignatureImage

      public void setReturnSignatureImage(boolean returnSignatureImage)
      Description copied from interface: SignatureImageOptions
      Sets whether signature image should be available in SignatureImageResult. If enabled, get image using SignatureImageResult.getSignatureImage() By default, this is set to 'false'. IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, android.content.Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED
      Specified by:
      setReturnSignatureImage in interface SignatureImageOptions
      Parameters:
      returnSignatureImage - whether signature image will be available in SignatureImageResult.
    • shouldReturnSignatureImage

      public boolean shouldReturnSignatureImage()
      Description copied from interface: SignatureImageOptions
      Returns whether signature image will be available in SignatureImageResult. By default, this is set to 'false'.
      Specified by:
      shouldReturnSignatureImage in interface SignatureImageOptions
      Returns:
      whether signature image will be available in SignatureImageResult.
    • setPaddingEdge

      public void setPaddingEdge(@FloatRange(from=0.0,to=1.0) float paddingEdge)
      Minimum required distance between the edge of the scanning frame and the document. Defined as a percentage of the frame width. By default, this is set to '0.0' in which case the padding edge and the image edge are the same. Alternative recommended value is 0.02f.
    • getPaddingEdge

      @FloatRange(from=0.0, to=1.0) public float getPaddingEdge()
      Minimum required distance between the edge of the scanning frame and the document. Defined as a percentage of the frame width. By default, this is set to '0.0' in which case the padding edge and the image edge are the same. Alternative recommended value is 0.02f.
    • setEncodeSignatureImage

      public void setEncodeSignatureImage(boolean encodeSignatureImage)
      Description copied from interface: EncodeSignatureImageOptions
      Sets whether signature image from document should be encoded in JPEG format and written into the corresponding recognition result. By default, this is set to 'false'.
      IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, android.content.Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED
      Specified by:
      setEncodeSignatureImage in interface EncodeSignatureImageOptions
      Parameters:
      encodeSignatureImage - whether signature image should be encoded in JPEG format and written into the corresponding recognition result.
    • shouldEncodeSignatureImage

      public boolean shouldEncodeSignatureImage()
      Description copied from interface: EncodeSignatureImageOptions
      Returns whether encoding of signature image and writing it into the recognition result is enabled. By default, this is set to 'false'.
      Specified by:
      shouldEncodeSignatureImage in interface EncodeSignatureImageOptions
      Returns:
      whether encoding of signature image and writing it into the recognition result is enabled.
    • setMaxAllowedMismatchesPerField

      public void setMaxAllowedMismatchesPerField(@IntRange(from=0L) int maxAllowedMismatchesPerField)
      Configure the number of characters per field that are allowed to be inconsistent in data match. By default, this is set to '0'.
    • getMaxAllowedMismatchesPerField

      @IntRange(from=0L) public int getMaxAllowedMismatchesPerField()
      Configure the number of characters per field that are allowed to be inconsistent in data match. By default, this is set to '0'.
    • setAllowBlurFilter

      public void setAllowBlurFilter(boolean allowBlurFilter)
      Skip processing of the blurred frames. By default, this is set to 'true'
    • shouldAllowBlurFilter

      public boolean shouldAllowBlurFilter()
      Skip processing of the blurred frames. By default, this is set to 'true'
    • setReturnFullDocumentImage

      public void setReturnFullDocumentImage(boolean returnFullDocumentImage)
      Description copied from interface: FullDocumentImageOptions
      Sets whether full document image should be available in FullDocumentImageResult. If enabled, get image using FullDocumentImageResult.getFullDocumentImage() By default, this is set to 'false'. IMPORTANT NOTE: If you set MicroblinkSDK.setIntentDataTransferMode(com.microblink.blinkid.intent.IntentDataTransferMode) to IntentDataTransferMode.STANDARD recognizer which contains encoded image cannot be parcelized and passed by Intent extras because of Android limitations on intent extras size. If you are using one of the provided scan activities and expect receiving scan results in Activity.onActivityResult(int, int, android.content.Intent) method use either IntentDataTransferMode.OPTIMISED or IntentDataTransferMode.PERSISTED_OPTIMISED By default, this is set to 'false'
      Specified by:
      setReturnFullDocumentImage in interface FullDocumentImageOptions
      Parameters:
      returnFullDocumentImage - whether full document image will be available in FullDocumentImageResult.
    • shouldReturnFullDocumentImage

      public boolean shouldReturnFullDocumentImage()
      Description copied from interface: FullDocumentImageOptions
      Returns whether full document image will be available in FullDocumentImageResult. By default, this is set to 'false'. By default, this is set to 'false'
      Specified by:
      shouldReturnFullDocumentImage in interface FullDocumentImageOptions
      Returns:
      whether full document image will be available in FullDocumentImageResult.
    • setAllowUncertainFrontSideScan

      public void setAllowUncertainFrontSideScan(boolean allowUncertainFrontSideScan)
      Proceed to scan the back side of a document even if some of the validity checks have failed while scanning the front side of a document. This only works for still images - video feeds will ignore this setting. By default, this is set to 'false'.
    • shouldAllowUncertainFrontSideScan

      public boolean shouldAllowUncertainFrontSideScan()
      Proceed to scan the back side of a document even if some of the validity checks have failed while scanning the front side of a document. This only works for still images - video feeds will ignore this setting. By default, this is set to 'false'.
    • setAllowUnparsedMrzResults

      public void setAllowUnparsedMrzResults(boolean allowUnparsedMrzResults)
      Allow reading of non-standard MRZ (Machine Readable Zone). Only raw MRZ result is returned. Final recognizer state is not affected. By default, this is set to 'false'.
    • shouldAllowUnparsedMrzResults

      public boolean shouldAllowUnparsedMrzResults()
      Allow reading of non-standard MRZ (Machine Readable Zone). Only raw MRZ result is returned. Final recognizer state is not affected. By default, this is set to 'false'.
    • setAnonymizationMode

      public void setAnonymizationMode(@NonNull AnonymizationMode anonymizationMode)
      Redact specific fields based on requirements or laws regarding a specific document. Data can be redacted from the image, the result or both. The setting applies to certain documents only. By default, this is set to 'FullResult'.
    • getAnonymizationMode

      @NonNull public AnonymizationMode getAnonymizationMode()
      Redact specific fields based on requirements or laws regarding a specific document. Data can be redacted from the image, the result or both. The setting applies to certain documents only. By default, this is set to 'FullResult'.
    • setSkipUnsupportedBack

      public void setSkipUnsupportedBack(boolean skipUnsupportedBack)
      Back side of the document will not be scanned if only the front side is supported for a specific document. If set to false, a photo of the back side will be returned, as well as barcode or MRZ (Machine Readable Zone) if either is present. By default, this is set to 'false'.
    • shouldSkipUnsupportedBack

      public boolean shouldSkipUnsupportedBack()
      Back side of the document will not be scanned if only the front side is supported for a specific document. If set to false, a photo of the back side will be returned, as well as barcode or MRZ (Machine Readable Zone) if either is present. By default, this is set to 'false'.
    • getFaceImageDpi

      public int getFaceImageDpi()
      Returns the DPI (Dots Per Inch) for face image that should be returned. By default, this is set to '250'.
      Specified by:
      getFaceImageDpi in interface FaceImageDpiOptions
      Returns:
      DPI for face image that should be returned.
    • setFaceImageDpi

      public void setFaceImageDpi(@IntRange(from=100L,to=400L) int desiredDPI)
      Sets desired DPI (Dots Per Inch) for face image that should be returned. By default, this is set to '250'.
      Specified by:
      setFaceImageDpi in interface FaceImageDpiOptions
      Parameters:
      desiredDPI - desired DPI in range [100, 400]
    • getFullDocumentImageDpi

      public int getFullDocumentImageDpi()
      Returns the DPI (Dots Per Inch) for full document image that should be returned. By default, this is set to '250'.
      Specified by:
      getFullDocumentImageDpi in interface FullDocumentImageDpiOptions
      Returns:
      DPI for full document image that should be returned.
    • setFullDocumentImageDpi

      public void setFullDocumentImageDpi(@IntRange(from=100L,to=400L) int desiredDPI)
      Sets desired DPI (Dots Per Inch) for full document image that should be returned. By default, this is set to '250'.
      Specified by:
      setFullDocumentImageDpi in interface FullDocumentImageDpiOptions
      Parameters:
      desiredDPI - desired DPI in range [100, 400]
    • setFullDocumentImageExtensionFactors

      public void setFullDocumentImageExtensionFactors(@NonNull ImageExtensionFactors fullDocumentImageExtensionFactors)
      Sets extension factors for full document image. By default, this is set to '[0.0, 0.0, 0.0, 0.0]'.
      Specified by:
      setFullDocumentImageExtensionFactors in interface FullDocumentImageExtensionOptions
      Parameters:
      fullDocumentImageExtensionFactors - extension factors for full document image.
    • getFullDocumentImageExtensionFactors

      @NonNull public ImageExtensionFactors getFullDocumentImageExtensionFactors()
      Returns the extension factors for full document image. By default, this is set to '[0.0, 0.0, 0.0, 0.0]'.
      Specified by:
      getFullDocumentImageExtensionFactors in interface FullDocumentImageExtensionOptions
      Returns:
      extension factors for full document image.
    • getSignatureImageDpi

      public int getSignatureImageDpi()
      Returns the DPI (Dots Per Inch) for signature image that should be returned. By default, this is set to '250'.
      Specified by:
      getSignatureImageDpi in interface SignatureImageDpiOptions
      Returns:
      DPI for signature image that should be returned.
    • setSignatureImageDpi

      public void setSignatureImageDpi(@IntRange(from=100L,to=400L) int desiredDPI)
      Sets desired DPI (Dots Per Inch) for signature image that should be returned. By default, this is set to '250'.
      Specified by:
      setSignatureImageDpi in interface SignatureImageDpiOptions
      Parameters:
      desiredDPI - desired DPI in range [100, 400]
    • setRecognitionModeFilter

      public void setRecognitionModeFilter(@NonNull RecognitionModeFilter recognitionModeFilter)
      Enable or disable recognition of specific document groups supported by the current license. By default, this is set to '[true, true, true, true, true, true]'.
    • getRecognitionModeFilter

      @NonNull public RecognitionModeFilter getRecognitionModeFilter()
      Returns currently set recognition mode filter. By default, this is set to 'all modes are enabled'.
    • setAdditionalAnonymization

      public void setAdditionalAnonymization(@NonNull ClassAnonymizationSettings[] additionalAnonymization)
      Enable or disable recognition of specific document groups supported by the current license. By default, this is set to '[-1, -1, -1]'.
    • getAdditionalAnonymization

      @NonNull public ClassAnonymizationSettings[] getAdditionalAnonymization()
      Returns additional anonymization settings. By default, this is set to '[null, null, null, null]'.
    • setDewarpedImageCallback

      public void setDewarpedImageCallback(@Nullable DewarpedImageCallback dewarpedImageCallback)
      Sets the DewarpedImageCallback that will receive dewarped document images.
      Parameters:
      dewarpedImageCallback - DewarpedImageCallback that will receive dewarped document images.
    • setClassifierCallback

      public void setClassifierCallback(@Nullable ClassifierCallback classifierCallback)
      Sets the ClassifierCallback that will be invoked from the recognizer when document is classified.
      Specified by:
      setClassifierCallback in interface ClassifierCallbackOptions
      Parameters:
      classifierCallback - ClassifierCallback that will be invoked from the recognizer when document is classified.
    • setBarcodeScanningStartedCallback

      public void setBarcodeScanningStartedCallback(@Nullable BarcodeScanningStartedCallback barcodeScanningStartedCallback)
      Description copied from interface: BarcodeScanningStartedCallbackOptions
      Sets the BarcodeScanningStartedCallback that will be invoked from the recognizer when barcode scanning step starts.
      Specified by:
      setBarcodeScanningStartedCallback in interface BarcodeScanningStartedCallbackOptions
      Parameters:
      barcodeScanningStartedCallback - BarcodeScanningStartedCallback that will be invoked from the recognizer when barcode scanning step starts.
    • setClassFilter

      public void setClassFilter(@Nullable ClassFilter classFilter)
      Sets the ClassFilter that can determine whether document should be processed or filtered out.
      Parameters:
      classFilter - ClassFilter that can determine whether document should be processed or filtered out or null to allow processing of all documents.
    • getCombinedResult

      @Nullable public CombinedResult getCombinedResult()
      Getter for combined result which is associated with this multi-side recognizer.
      Specified by:
      getCombinedResult in interface CombinedRecognizer
      Returns:
      combined result which is associated with this multi-side recognizer.
    • writeToParcel

      public void writeToParcel(@NonNull android.os.Parcel dest, int flags)
      Specified by:
      writeToParcel in interface android.os.Parcelable
      Overrides:
      writeToParcel in class Entity<BlinkIdMultiSideRecognizer.Result>
    • readFromParcel

      protected void readFromParcel(@NonNull android.os.Parcel in)
      Overrides:
      readFromParcel in class Entity<BlinkIdMultiSideRecognizer.Result>
    • terminateNative

      protected void terminateNative(long nativeContext)
      Specified by:
      terminateNative in class Entity<BlinkIdMultiSideRecognizer.Result>
    • serializeNativeSettings

      @Nullable protected byte[] serializeNativeSettings()
      Specified by:
      serializeNativeSettings in class Entity<BlinkIdMultiSideRecognizer.Result>
    • deserializeNativeSettings

      protected void deserializeNativeSettings(@NonNull byte[] serializedSettings)
      Specified by:
      deserializeNativeSettings in class Entity<BlinkIdMultiSideRecognizer.Result>
    • clone

      Description copied from class: Entity
      Create a copy of the entity. This is required if properties of the entity must be modified while background thread performs processing. In order to avoid race conditions, changing properties is not allowed while entity is used in background processing. However, you are able to make a copy of the entity, change properties of it and then update the RecognizerRunnerView or RecognizerRunner with the updated entity hierarchy.
      Specified by:
      clone in class Recognizer<BlinkIdMultiSideRecognizer.Result>
      Returns:
      a copy of the entity
    • consumeResultFrom

      public void consumeResultFrom(@NonNull Entity other)
      Description copied from class: Entity
      Consume result from other entity. The result from other will be put instead current result of this entity. This method is used inside BaseIntentTransferable.loadFromIntent(Intent) and similar methods to replace the result content of the saved entities with results that have arrived over Intent
      Specified by:
      consumeResultFrom in class Entity<BlinkIdMultiSideRecognizer.Result>
      Parameters:
      other - Entity from which result should be consumed.