Migration Guides 

Migration Guide for SDK v4.45.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.44.1.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  1. There is no need to remove default permissions in AndroidManifest.xml anymore. Snippet like below, can now be removed from your configuration:
XML
1<!--Remove old permissions-->
2 <permission
3 android:name="com.morpho.mph_bio_sdk.android.sdk.content_provider.BioStoreProvider.READ_MPH_BIO_SDK_PROVIDER"
4 tools:node="remove" />
5 <permission
6 android:name="com.morpho.mph_bio_sdk.android.sdk.content_provider.BioStoreProvider.WRITE_MPH_BIO_SDK_PROVIDER"
7 tools:node="remove" />
8 <permission
9 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.WRITE_LKMS_LICENSE_PROVIDER"
10 tools:node="remove"
11 />
12 <permission
13 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.READ_LKMS_LICENSE_PROVIDER"
14 tools:node="remove"
15 />
  1. RemoteUseCase:
  • Add handling new error type DEVICE_BLOCKED:
Kotlin
1val captureResultListener = RemoteCaptureResultListener { result ->
2 when (result) {
3 is Success -> {
4 // Capture completed with success, you can now download information about liveness from WBS or GIPS
5 }
6
7 is Failure -> {
8 when(error.type) {
9 ErrorType.DEVICE_BLOCKED -> {
10 showDeviceWasBlocked(error.unlockDateTime)
11 }
12 else -> //other error types
13 }
14 }
15 }
16}
  1. FingerCaptureResultListener:
  • Added new callback for success containing finger images for display:
Kotlin
1val listener = object : FingerCaptureResultListener {
2 override fun onCaptureSuccess(images: MutableList<MorphoImage>, captureResult: FingerCaptureResult) {
3 //deprecated
4 }
5
6 override fun onCaptureSuccess(
7 images: List<MorphoImage>,
8 imagesToDisplay: List<FingerImagePreview>,
9 captureResult: FingerCaptureResult
10 ) {
11 forDisplay(imagesToDisplay)
12 forMatching(images)
13 }
14
15 override fun onCaptureFailure(captureError: CaptureError, biometricInfo: IBiometricInfo, extraInfo: Bundle) {
16 onFailure()
17 }
18
19}
  1. Removed handling integrity, sharpness, reflections, lighting and badFraming from DocumentImageQualityIndicators in onDocumentCaptureFailure callback coming from DocumentCaptureListener.

Migration Guide for NFCReader 2.1.1 

This NFCReader release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.44.1 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for UiExtensions v2.1.0 

What is Needed? 

The Android project that has been integrated with the UiExtensions version 2.0.0 and CaptureSDK with version >= 4.43.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

This version contains changes related with replacing MorphoSurfaceView with CaptureView - so it is required to use it ONLY WITH CaptureSDK with version >=4.44.0!

  • To fill preview on layout, parameters scaleX and scaleY from previewScale should be set to 1 or removed. Now layout should be filled out of the box.

Migration Guide for SDK v4.44.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.43.2.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Legacy capture:

  • Replacement of MorphoSurfaceView:
  1. Replace usage of morpho.urt.msc.mscengine.MorphoSurfaceView with com.idemia.smartsdk.preview.CaptureView

From:

XML
1(...)
2 <morpho.urt.msc.mscengine.MorphoSurfaceView
3 android:id="@+id/previewSurface"
4 android:layout_height="match_parent"
5 android:layout_width="match_parent"/>

To:

XML
1(...)
2 <com.idemia.smartsdk.preview.CaptureView
3 android:id="@+id/previewSurface"
4 android:layout_height="match_parent"
5 android:layout_width="match_parent"/>
  1. In opposite to MorphoSurfaceView, there is no need to call onDestroy on CapturePreview when Activity/Fragment is destroyed. Furthermore, CapturePreview does not have such method, so after adding CapturePreview to your xml file this call can be safely removed.

IMPORTANT: If you are using UiExtensions library, you must update its version to at least 2.1.0!

  • Remove usage of method onError(exception: MSCException) in PreviewStatusListener. From now, the only method to handler errors associated with preview is onError(error: PreviewError).

Migration Guide for NFCReader 2.1.0 

What is Needed? 

The Android project that has been integrated with the NFCReader version 2.0.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous NFCReader version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Migration Guide for SDK v4.43.2 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.43.1 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.43.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.42.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

License:

Android Manifest: Due to internal SDK changes with license management, there is need to change of permissions and provider in AndroidManifest of application.

From:

XML
1<permission
2 android:name="com.morpho.mph_bio_sdk.android.sdk.content_provider.BioStoreProvider.READ_MPH_BIO_SDK_PROVIDER"
3 tools:node="remove" />
4 <permission
5 android:name="com.morpho.mph_bio_sdk.android.sdk.content_provider.BioStoreProvider.WRITE_MPH_BIO_SDK_PROVIDER"
6 tools:node="remove" />
7 <permission
8 android:name="com.morpho.lkms.android.sdk.lkms_core.content_provider.LkmsStoreProvider.WRITE_LKMS_LICENSE_PROVIDER"
9 tools:node="remove"
10 />
11 <permission
12 android:name="com.morpho.lkms.android.sdk.lkms_core.content_provider.LkmsStoreProvider.READ_LKMS_LICENSE_PROVIDER"
13 tools:node="remove"
14 />
15 <provider
16 android:name="com.morpho.lkms.android.sdk.lkms_core.content_provider.LkmsStoreProvider"
17 android:authorities="your.new.authority"
18 android:readPermission="your.new.permission.NEW_READ_LKMS_LICENSE_PROVIDER"
19 android:writePermission="your.new.permission.NEW_WRITE_LKMS_LICENSE_PROVIDER"
20 tools:replace="android:authorities, android:readPermission, android:writePermission">

To:

XML
1<permission
2 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.READ_MPH_BIO_SDK_PROVIDER"
3 tools:node="remove" />
4 <permission
5 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.WRITE_MPH_BIO_SDK_PROVIDER"
6 tools:node="remove" />
7 <permission
8 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.WRITE_LKMS_LICENSE_PROVIDER"
9 tools:node="remove"
10 />
11 <permission
12 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider.READ_LKMS_LICENSE_PROVIDER"
13 tools:node="remove"
14 />
15 <provider
16 android:name="com.idemia.license.android.sdk.content_provider.LicenseStoreProvider"
17 android:authorities="your.new.authority"
18 android:readPermission="your.new.permission.NEW_READ_LKMS_LICENSE_PROVIDER"
19 android:writePermission="your.new.permission.NEW_WRITE_LKMS_LICENSE_PROVIDER"
20 tools:replace="android:authorities, android:readPermission, android:writePermission">

Document:

  1. Methods setSharpnessPercentage(sharpnessPercentage: Int), setQualityReflection(qualityReflection: QualityReflection), setIntegrityPercentage(integrityPercentage: Int), getSharpnessPercentage(), getQualityReflection(), getIntegrityPercentage() from DocumentImage and onDocumentCaptureFailure(captureError: DocumentCaptureError?) were removed from document-related listeners. Below you can see sample code for Barcode and Document listeners for replacement.
Kotlin
1documentHandler?.setBarcodeListener(object: object : BarcodeListener {
2
3 override fun onBarcodeRead(capture: List<String>) {
4 // Barcode captured
5 }
6
7 override fun onDocumentCaptureFailure(captureError: DocumentCaptureError, indicators: DocumentImageQualityIndicators?) {
8 //Capture failed - you can check quality indicators
9 }
10
11 override fun onCaptureFinish() {
12 //Capture finished
13 }
14})
Kotlin
1captureHandler.setDocumentCaptureListener(object: DocumentCaptureListener {
2
3 override fun onCaptureFinish() {
4 // Capture finished
5 }
6
7 override fun onCaptureImageDocument(image: DocumentImage?) {
8 // Document captured
9 }
10
11 override fun onMRZDocumentRead(mrzLines: MutableList<IMRZLine>?, mrzRecord: IMrzRecord?) {
12 // MRZ captured
13 }
14
15 override fun onCaptureFieldImageDocument(image: DocumentImage?, label: String?) {
16 // A field has been coded
17 }
18
19 override fun onDocumentCaptureFailure(captureError: DocumentCaptureError, indicators: DocumentImageQualityIndicators?) {
20 // Capture failed - you can check quality indicators
21 }
22})
  1. Remove logic associated with handling DocCaptureInfo.MOVEMENT and CaptureFeedback.MOVEMENT.

  2. Add handling DocCaptureInfo.LOW_LIGHT feedback.

RemoteDocument: (Optional )It is possible to get document images on capture timeout by passing CaptureTimeoutListener to RemoteUseCase.

Kotlin
1private val timeoutListener = object: CaptureTimeoutListener {
2 override fun onTimeoutOccurred(documentImages: List<DocumentImage>) {
3 // Images can be shown to the user
4 }
5 }
6 private val useCase = RemoteUseCase(feedbackListener, adjudicationListener, sessionInfo, timeoutListener)
7
8 (...)

NOTE: Capture result will be Failure, so sending those images to the server for verification is impossible, but they can be used with DocumentImageQualityIndicators to explain what went wrong during the capture. DocumentImageQualityIndicators from Failure are applicable to the last image.

Migration Guide for UiExtensions v2.0.0 

What is Needed? 

The Android project that has been integrated with the UiExtensions version 1.2.18 and CaptureSDK with version >= 4.42.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  1. If you are not directly using any of xml layouts coming from the library, then you can skip this section. Otherwise, rename the imports as below:

capture_delay_layout.xml to uiextension_capture_delay_layout.xml capture_result_image_view.xml to uiextension_capture_result_image_view.xml circle_layout.xml to uiextension_circle_layout.xml face_overlay_layout.xml to uiextension_face_overlay_layout.xml fade_layout.xml to uiextension_fade_layout.xml feedback_layout.xml to uiextension_feedback_layout.xml finger_feedback_layout.xml to uiextension_finger_feedback_layout.xml finger_layout.xml to uiextension_finger_layout.xml oval_image_view.xml to uiextension_oval_image_view.xml passive_video_layout.xml to uiextension_passive_video_layout.xml pointer_layout.xml to uiextension_pointer_layout.xml preparation_loader_layout.xml to uiextension_preparation_loader_layout.xml progress_bar_layout.xml to uiextension_progress_bar_layout.xml progress_layout.xml to uiextension_progress_layout.xml scene_border_layout.xml to uiextension_scene_border_layout.xml scene_layout.xml to uiextension_scene_layout.xml tapping_feedback_layout.xml to uiextension_tapping_feedback_layout.xml target_layout.xml to uiextension_target_layout.xml tutorial_view.xml to uiextension_tutorial_view.xml vertical_device_position_feedback_layout.xml to uiextension_vertical_device_position_feedback_layout.xml

  1. It is possible to set your own title and description for the view displayed before PassiveVideo capture. To do so, modify titleResId and descriptionResId in preparationScene dsl.
Kotlin
1passiveVideoCaptureSettings {
2 scene {
3 preparationScene {
4 titleResId = R.string.preparation_passivevideo_title
5 descriptionResId = R.string.preparation_passivevideo_description
6 (...)
7 }
8 }
9 (...)
10}
  1. You can set up view which will be shown before Active Liveness capture by adding overlay property in scene as presented below.
Kotlin
1joinThePointsChallengeSettings {
2 useInterpolation = true
3 scene {
4 overlay {
5 showOverlay = true
6 imageRes = R.drawable.ic_face_overlay
7 marginVertical = R.dimen.default_face_overlay_vertical_padding
8 marginHorizontal = R.dimen.default_face_overlay_vertical_padding
9 text {
10 text = R.string.default_overlay_text
11 textSize = R.dimen.default_overlay_text_size
12 textColor = Color.parseColor(Colors.text_black)
13 }
14 }
15 }
16 (...)
17}

Migration Guide for UiExtensions 1.2.18 

This version of UiExtensions is fully compatible with 1.2.17, so there are no migration steps.

Migration Guide for SDK v.4.42.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.41.1.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Document: Information about document image quality indicators MUST be retrieved from onDocumentCaptureFailure() callback (see code snippet below), as methods getSharpnessPercentage(), getIntegrityPercentage() and getQualityReflection() now throws NoSuchFieldException.

Kotlin
1captureHandler.setDocumentCaptureListener(object: DocumentCaptureListener {
2
3 override fun onCaptureFinish() {
4 //Capture finished
5 }
6
7 override fun onCaptureImageDocument(image: DocumentImage?) {
8 //Document captured
9 }
10
11 override fun onMRZDocumentRead(mrzLines: MutableList<IMRZLine>?, mrzRecord: IMrzRecord?) {
12 //MRZ captured
13 }
14
15 override fun onCaptureFieldImageDocument(image: DocumentImage?, label: String?) {
16 //A field has been coded
17 }
18
19 override fun onDocumentCaptureFailure(captureError: DocumentCaptureError?) {
20 //Deprecated failure method
21 }
22
23 override fun onDocumentCaptureFailure(captureError: DocumentCaptureError, indicators: DocumentImageQualityIndicators?) {
24 //Capture failed - you can check quality indicators
25 }
26})

Migration Guide for UiExtensions 1.2.17 

This version of UiExtensions is fully compatible with 1.2.16, so there are no migration steps.

Migration Guide for UiExtensions 1.2.16 

This version of UiExtensions is fully compatible with 1.2.15, so there are no migration steps.

Migration Guide for NFCReader 2.0.0 

What is Needed? 

The Android project that has been integrated with the NFCReader version 1.2.2.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous NFCReader version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

General:

  • Failure now contain code of failure. This is information only needed for NFCReader developer to NFC reading failed.

Migration Guide for SDK v4.41.1 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for NFCReader 1.2.2 

What is Needed? 

The Android project that has been integrated with the NFCReader version 1.2.1.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous NFCReader version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Due to the fact that NFCConfiguration now do not need configuration for SDKExperience there is removed MissingSdkExperienceConfigurationException. If SDKExperience is not provided to NFCConfiguration using function getTutorialProvider will return TutorialProvider which information about NFC positions and animations are coming from library.

Migration Guide for SDK v4.41.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.40.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

General:

  • New method - onError(error: PreviewError) must be implemented in PreviewStatusListener. This method replaces onError(exception: MSCException) - which will be removed in the future. PreviewError contains a message field which explains the reason of the failure.
Kotlin
1handler?.startPreview(object : PreviewStatusListener {
2 override fun onStarted() {
3 Log.d(TAG, "preview started")
4 handler?.startCapture()
5 }
6
7 override fun onError(exception: MSCException) {
8 //SHOULDN'T BE USED - WILL BE REMOVED IN VERSION 4.44.0
9 }
10
11 override fun onError(error: PreviewError) {
12 Log.d(TAG, "Starting preview error: ${error.message}")
13 }
14 })

Migration Guide for UiExtensions 1.2.15 

What is Needed? 

The Android project that has been integrated with the UiExtensions version 1.2.13 and CaptureSDK with version >= 4.37.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

If you don't set feedbackStringMapping by yourself - no migration steps are needed. Otherwise you should use faceFeedbackStringMapping instead. To do so, just replace BioCaptureInfo enum values with corresponding types of FaceCaptureInfo in your mapping. So change: BioCaptureInfo.FACE_INFO_COME_BACK_FIELD to FaceCaptureInfo.INFO_COME_BACK_FIELD BioCaptureInfo.FACE_INFO_TURN_LEFT to FaceCaptureInfo.INFO_TURN_LEFT BioCaptureInfo.FACE_INFO_CENTER_TURN_LEFT to FaceCaptureInfo.INFO_CENTER_TURN_LEFT BioCaptureInfo.FACE_INFO_CENTER_TURN_RIGHT to FaceCaptureInfo.INFO_CENTER_TURN_RIGHT BioCaptureInfo.FACE_INFO_CENTER_ROTATE_DOWN to FaceCaptureInfo.INFO_CENTER_ROTATE_DOWN BioCaptureInfo.FACE_INFO_CENTER_ROTATE_UP to FaceCaptureInfo.INFO_CENTER_ROTATE_UP BioCaptureInfo.FACE_INFO_CENTER_TILT_LEFT to FaceCaptureInfo.INFO_CENTER_TILT_LEFT BioCaptureInfo.FACE_INFO_CENTER_TILT_RIGHT to FaceCaptureInfo.INFO_CENTER_TILT_RIGHT BioCaptureInfo.FACE_INFO_CENTER_MOVE_FORWARDS to FaceCaptureInfo.INFO_CENTER_MOVE_FORWARDS BioCaptureInfo.FACE_INFO_CENTER_MOVE_BACKWARDS to FaceCaptureInfo.INFO_CENTER_MOVE_BACKWARDS BioCaptureInfo.FACE_INFO_TOO_FAST to FaceCaptureInfo.INFO_TOO_FAST BioCaptureInfo.FACE_CENTER_GOOD to FaceCaptureInfo.CENTER_GOOD BioCaptureInfo.FACE_INFO_DONT_MOVE to FaceCaptureInfo.INFO_DONT_MOVE BioCaptureInfo.FACE_INFO_CHALLANGE_2D to FaceCaptureInfo.INFO_CHALLANGE_2D BioCaptureInfo.FACE_INFO_STAND_STILL to FaceCaptureInfo.INFO_STAND_STILL BioCaptureInfo.FACE_INFO_NOT_MOVING to FaceCaptureInfo.INFO_NOT_MOVING BioCaptureInfo.DEVICE_MOVEMENT_ROTATION to FaceCaptureInfo.DEVICE_MOVEMENT_ROTATION BioCaptureInfo.DEVICE_MOVEMENT_ENDED to FaceCaptureInfo.DEVICE_MOVEMENT_ENDED

Migration Guide for NFCReader 1.2.1 

What is Needed? 

The Android project that has been integrated with the NFCReader version 1.2.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous NFCReader version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Due to the fact that NFCConfiguration need configuration for SDKExperience there is added new configuration SDKExperience. If SDKExperience is not provided to NFCConfiguration using function getTutorialProvider will cause throwing MissingSdkExperienceConfigurationException. Please if you want use TutorialProvider functionality initialise NFCConfiguration with SDKExperience configuration.

When integrator want get localisation of NFC chip on document/phone and after that animation provided by IDEMIA, integrator need to set SDKExperience configuration.

Kotlin
1val configuration = NFCConfiguration(
2 serverUrl = "$TENANT/nfc"
3 serverApiKey = BuildConfig.nfcApiKey,
4 sdkExperience = SDKExperience(
5 serviceUrl = "$TENANT/sdk-experience/",
6 apiKey = BuildConfig.nfcApiKey,
7 assetsUrl = "$ASSETS_URL"
8 )
9 )

(NOTE Integrator do not need to set urls when using default environment (EU PROD). With this configuration NFCReader need only api keys.)

Migration Guide for SDK v4.40.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.39.1.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Finger:

  • Remove usage of setTorch(torch: Torch), setMaxNumberOfCaptures(int crossMatchingCaptureAttempts), getTorch() and getMaxNumberOfCaptures() for FingerCaptureOptions.

Document:

  • New method onDocumentCaptureFailure(@NonNull DocumentCaptureError captureError, @Nullable DocumentImageQualityIndicators indicators) must be implemented for BarcodeListener, BarcodeRawDataListener and DocumentCaptureListener (onDocumentCaptureFailure(@NonNull DocumentCaptureError captureError) is now deprecated). It may be used to get information about document image integrity/sharpness/reflections/lightning. Those information are still available in DocumentImage, but for the image returned with CodedMode different than NOMINAL integrity and sharpness will always be 100 and QualityReflection will be NONE. Furthermore, indicators retrieved from onDocumentCaptureFailure are enums instead of percentage values. See DocumentImageQualityIndicators in integration guide.
  • Capture will be started in UHD resolution if Android API will detect that device camera supports UHD. To start capture in FHD, you should set uhdResolutionEnabled to false in DocumentCaptureOptions.

Migration Guide for NFCReader 1.2.0 

What is Needed? 

The Android project that has been integrated with the NFCReader version 1.1.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous NFCReader version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Due to fact that getAnimation now returns sealed class AnimationResult, you should add code responsible for handling situation when you'll get AnimationFetchFailure. AnimationFetchFailure contains message describing cause of failure and TutorialFailure. For example:

Kotlin
1val animationResult = with(nfcLocation) {
2 tutorialProvider.getAnimation(phoneNFCLocation.first(), documentNFCLocation, documentType, documentFeature)
3 }
4
5 withContext(Dispatchers.Main) {
6 when (animationResult) {
7 is AnimationFetchFailure -> navigateToFailureScreen(animationResult.message, animationResult.type)
8 is AnimationFetchSuccess -> view?.setAnimation(animationResult.animation, scanIndex)
9 }
10 }

Also getNFCLocation method now returns NFCLocationResult. LocationFetchFailure returns similar information to TutorialFailure and may be handled in the same way.

Migration Guide for SDK v4.39.1 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.38.0.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Replace LicenseManager from com.morpho.mph_bio_sdk.android.sdk.licence to LicenseManager from com.idemia.common.capturesdk.core.license.
  • Replace BioSdk.createLicenseManager(getApplicationContext()) to LicenseManager.provideLicenseManager(LkmsProfileId, LkmsApiKey, lkmsUrl)
  • Replace createLicense from ILicenseManager to activate from new LicenseManager
  • Additional functions from ILicenseManager need to be removed. Only the function activate from new LicenseManager is needed. This one function fetch, validate and remove license (If needed)

Migration guide for SDK v4.39.0 

The version has been omitted.

Migration Guide for SDK v4.38.0 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.37.1 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v.4.37.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.36.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.36.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • BioCaptureInfo from BioCaptureFeedbackListener is now deprecated and will be removed in version 4.40.0. Use FaceCaptureInfo from FaceCaptureFeedbackListener instead.
  • In new Remote Face Liveness API: RemoteCaptureResultListener can now return two new errors associated with video recording: with code 11100 for error associated with start of video recording, 11101 in case of video generation failure.

Migration Guide for SDK v.4.36.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.35.+.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.35.+ require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • In new Remote Face Liveness API: Success class of RemoteCaptureResultListener onFinish callback now has FaceImage, which contains width, height and face image (ByteArray of jpeg image). Integrator now can use this image to display result of capture immediately.

Migration Guide for SDK v4.35.1 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.34.+.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.34.+ require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • In legacy Remote Liveness API: RemoteFaceCaptureResultListener has now two parameters in callback onCaptureSuccess: metadata and face image (ByteArray of jpeg image). Integrator now can use this image to display result of capture immediately.
  • In BioCaptureFeedbackListener callback with capture info: onCaptureInfo doesn't have extraInfo parameter anymore.

Migration Guide for SDK v4.35.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.34.+.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.34.+ require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • In new document part API: com.idemia.capture.document.api.CaptureView has been changed to com.idemia.capture.document.api.DocumentCaptureView. Furthermore, a destroy method has been added to this view. It should be called in onDestroy() method of activity if lifecycle was not provided in DocumentCaptureView setUp method.
  • Video recording API changes: com.idemia.smartsdk.video.VideoError has been changed to com.idemia.common.capturesdk.core.video.VideoError; com.idemia.smartsdk.video.VideoGenerationInProgressException has been changed to com.idemia.common.capturesdk.core.video.VideoRecordingAlreadyStartedException and also com.idemia.smartsdk.video.VideoProgressListener is now com.idemia.common.capturesdk.core.video.VideoProgressListener.
  • For face capture mode cr2d change FaceLiveness.HIGH to FaceLiveness.ACTIVE
  • If you used face capture, slam please use different mode
  • Removed from FingerTracking usage of BiometricModality and BiometricLocation. It is no longer supported.
  • Use package for ColorSpace from com.morpho.mph_bio_sdk.android.sdk.common.image.ColorSpace to com.idemia.common.capturesdk.core.utils.model.ColorSpace

Migration Guide for SDK v4.34.2 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.34.1 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration Guide for SDK v4.34.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.33.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.33.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Fixed enum CaptureFeedback name call. Change from CaptureFeedback.name() to CaptureFeedback.name in kotlin.

Migration Guide for SDK v4.33.1 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.33.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.33.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

Migration Guide for SDK v4.33.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.32.1.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.32.1 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • setting torch in FingerCaptureOptions should be always on.

Migration Guide for SDK v4.32.1 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.32.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.32.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Document rectification is now disabled by default

Migration Guide for SDK v4.32.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.31.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.31.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Method getNumberOfFingers has been removed from IFingerCaptureOptions.
  • FaceCaptureOptions has no default constructor now. FaceLiveness need to be provided in order to create options instance.
  • Security level for face: FaceLivenessSecurityLevel.VERY_HIGH is now deprecated. Use other security level.
  • Callback onCaptureSuccess(Metadata) in RemoteFaceCaptureResultListener is now obsoleted and is not call by CaptureSDK. Use onCaptureSuccess(EncryptedMetadata) instead.

Migration Guide for SDK v4.31.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.30.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.30.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Methods below has been removed from IFaceCaptureHandler. Use corresponding methods in FaceCaptureOptions instead:
    • setMaxCapturesBeforeDelay(int maxCapturesBeforeDelay)
    • getMaxCapturesBeforeDelay()
    • setTimeCaptureDelayArray(List<Long> timeCaptureDelayArray)
  • FingerCaptureOptions has no default constructor now. Capture mode and hand need to be provided in order to create options instance.
  • DocumentCaptureOptions has no default constructor now. DocumentCaptureModeConfiguration needs to be provided in order to create options instance.
  • FingerCaptureResult's livenessScore is now deprecated and contains fixed value. Should not be used anymore.

Migration Guide for SDK v4.30.0 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.29.1.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.29.1 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Removed challengeInterDelay from IFaceCaptureOptions
  • Removed deprecated enums from Cr2dMode
  • Removed deprecated enums from AcquisitionMode
  • Removed function createBioCaptureHandler
  • Removed plugins for document; hey are now available directly in sdk
  • Removed BarcodeCaptureModes
  • Added new document capture API based on use cases - See new API in integration guide
  • Added RemoteUseCase for document capture
  • All document capture modes can be found in DocumentCaptureMode now
  • function provideCaptureMode in interface DocumentCaptureModeConfiguration now need to return DocumentCapture

Migration Guide for SDK v4.29.1 

What is Needed? 

The Android project that has been integrated with the Capture SDK version 4.29.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.29.0 require changes in the current project in order to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • RemoteFaceCaptureOptions need to be provided with certificates and random form server
  • RemoteFaceCaptureHandler now returns encryptedDeviceId, masterSecretKey and encryptedMetadata
  • From FaceLivenessSecurityLevel removed values from VERY_HIGH2 to VERY_HIGH8
  • Add FingerTracking
  • Add FaceTracking
  • Add deprecated to onCaptureSuccess(metadata: Metadata)
  • Fix for amputee feature. Location of fingers is now proper.
  • Thumb mode for finger returns in BioLocation.Thumb

Migration guide for SDK v4.29.0 

What is needed? 

The Android project that has been integrated with the Capture SDK version 4.28.1.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.29.0 require changes in the current project to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • Removed DocumentCaptureModes:
    • READ_MRZ_DOCUMENT_IMAGE_STILL_MEDIUM
    • QR_CODE_PDF_417_STILL
    • CAPTURE_DOCUMENT_IMAGE_VERY_LOW_A4
    • CAPTURE_DOCUMENT_IMAGE_MRZ_MEDIUM_VERYLOW_A4
  • Add to FingerCaptureOptions methods setMaxNumberOfCaptures(int) and setCrossMatchingVerificationThreshold(long). There are used for verification feature.
  • Add to constructor FingerCaptureOptions(BioCaptureMode) parameter Hand. If you use deprecated constructor default Hand is Right.
  • Change mode names:
    • FOUR_FINGER to FINGERS
    • ONE_FINGER to THUMB

Migration guide for SDK v4.28.1 

What is needed? 

The Android project that has been integrated with the Capture SDK version 4.27.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.28.1 require changes in the current project to complete a successful migration.

Preparation 

Review the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt migration. This provides a greater chance to identify and fix any errors resulting from the migration.

  • New CaptureHandler RemoteFaceCaptureHandler
  • New CaptureOptions RemoteFaceCaptureOptions
  • Add VideoRectording feature to create video after capture
  • Deprecated constructors
    • FaceCaptureOptions()
    • DocumentCaptureOptions()
    • FingerCaptureOptions()
  • Add to FingerCaptureOptions methods setUHDResolutionEnabled(bool) and getUHDResolutionEnabled (Not ready for use)
  • Removed deprecated fingerprint capture modes from BioCaptureMode
    • FINGERPRINT_RIGHT_HAND
    • FINGERPRINT_LEFT_HAND
    • FINGERPRINT_RIGHT_HAND_AUTHENTICATION
    • FINGERPRINT_LEFT_HAND_AUTHENTICATION

Migration guide for SDK v4.28.0 

The version has been omitted.

Migration guide for SDK v4.27.0 

What is needed? 

The Android project that has been integrated with the Capture SDK version 4.26.0.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.27.0 require changes in the current project to complete a successful migration.

Preparation 

Review to the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt the migration process. This will provide a greater chance to identify and fix any errors resulting from the migration process.

  • New algorithm plugin F6-0-IDD80 has been added and might replace previous ones. Keep in mind that biometric templates created via these algorithms are not compatible.
  • CaptureOptions might be created from configuration file. FingerCaptureOptions, FaceCaptureOptions and DocumentCaptureOptions have static method createFromConfigurationFile that returns options loaded from file. This file is created on demand by CaptureSDK team.
  • Method createBioCaptureHandler in BioSdk class is now deprecated. Dedicated method for each handler should be used, which are: createFaceCaptureHandler, createFingerCaptureHandler and createDocumentCaptureHandler.

Migration guide for SDK v4.26.0 

What is needed? 

The Android project that has been integrated with the Capture SDK version 4.25.1.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.26.0 require changes in the current project to complete a successful migration.

Preparation 

Review to the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt the migration process. This will provide a greater chance to identify and fix any errors resulting from the migration process.

  • Illumination mode has become obsolete.

  • Set default liveness level to FingerLiveness.LOW.

  • Callback onTracking for finger now returns correctly list of finger.

  • Depracated values for DocumentCaptureMode :

    • READ_MRZ_DOCUMENT_IMAGE_STILL_MEDIUM
    • CAPTURE_DOCUMENT_IMAGE_MRZ_MEDIUM_VERYLOW_A4
    • QR_CODE_PDF_417_STILL,
    • CAPTURE_DOCUMENT_IMAGE_VERY_LOW_A4
  • OCR capture option has become obsolete.

Migration guide for SDK v4.25.1 

What is needed? 

The Android project that has been integrated with the Capture SDK version 4.24.0.

Use the Recommended -> SampleApp project that is integrated with Capture SDK version 4.25.1 for reference.

Assumptions 

The Migrator is aware that the implementation of a new SDK version requires changes in the existing code, which may impact the current application’s functionality.

Changes released in Capture SDK version 4.25.1 require changes in the current project to complete a successful migration.

Preparation 

Review to the Release Notes for any changes and updates and compare them to the previous SDK version.

Ensure that your project builds and runs correctly before you attempt the migration process. This will provide a greater chance to identify and fix any errors resulting from the migration process.

Code changes in brief 

FaceCaptureOptions:

BioCaptureMode was removed from FaceCaptureOptions. Now you can set capture mode by FaceLiveness

FingerCaptureOptions

For BioCaptureMode new options have been added. Old modes are now depracated. In mode FOUR_FINGERS, you can decide the number of fingers you want to scan thanks to function named setNumberOfFingers.

Capture Delay

The algorithms for mechanism of delay have changed. For more information please go to Handlers

Starting Preview and Capture Now starting preview and capture is asynchronous. For this purpose we created callback for java developers. startPreview method takes PreviewStatusListener callback as an argument. When you get onStarted callback you should call a function startCapture.

Kotlin developers can use coroutines to initialize the preview. Capture handlers supporting suspend functions are added to package com.idemia.smartsdk.capture

Kotlin
1defaultScope.launch {
2 handler.startPreview()
3 handler.startCapture()
4}

Migration guide for SDK v4.25.0 

The version has been omitted.

Migration guide for SDK v4.24.0 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration guide for SDK v4.23.1 

What is needed? 

Android project that has been integrated with 4.23.0 version of Capture SDK.

Use the Recommended -> SampleApp project that is integrated with version 4.23.1 of Capture SDK as practical example and reference to new changes.

Assumptions 

The Migrator is aware that implementation of a new SDK version requires changes in existing code which may impact the current application’s functionality.

Changes released in version 4.23.1 of Capture SDK require changes in the current project to complete a successful migration.

Preparation 

Review the Release Notes for any changes that were made and compare them to the previous version of the SDK.

Ensure that your project builds and runs correctly before you attempt the migration process. This will provide a greater chance to identify and fix any errors resulting from the migration process.

Code changes in brief 

FaceCaptureHandler:

addBioCaptureFaceMetadataListener was removed from FaceCaptureHandler. Now you can get metadata from capture from FaceImage. FaceImage is a successful result of face capture.

Migration guide for SDK v4.23.0 

This SDK release is compatible with previous releases and does not require any migration steps.

Migration guide for SDK v4.22.0 

What is needed? 

Android project that has been integrated with 4.21 version of Capture SDK.

Use the Recommended -> SampleApp project that is integrated with version 4.22 of Capture SDK as practical example and reference to new changes.

Assumptions 

The Migrator is aware that implementation of a new SDK version requires changes in existing code which may impact the current application’s functionality.

Changes released in version 4.22 of Capture SDK require changes in the current project to complete a successful migration.

Preparation 

Take a look at the Release Notes to get familiar with changes that were made and compare them the to previous SDK version.

Make sure that your project builds and runs correctly before you attempt the migration process. This will make sure that possible errors connected with the migration process have a greater chance of being identified and fixed.

Code changes in brief 

General changes

Since 4.22 Capture SDK uses a plugin mechanism that allows integrators to pick what features they want.

Variants are still valid and are unchanged, but extra dependencies need to be added to have a fully functional SDK.

For example:

  • biometry variant - requires the face_normal/face_lite/face_cr2dmatching (one of them) plugin + algorithm plugin. For the backward compatibility algorithm, f5_0_vid81 is the right option.

  • document variant has predefined dependencies - when the SDK's dependency is set properly, all plugins should be attached automatically.

  • biometry_document variant requires only biometry's dependencies

  • finger variant - Similar to document variant, this has dependencies predefined with an algorithm included (only fingers algorithm).

More detailed configuration information can be found in the SDK's documentation.

Example plugin dependencies:

implementation "com.idemia.smartsdk:plugin-face-normal:4.22.0"

implementation "com.idemia.smartsdk:plugin-algorithm-f5-0-vid81:4.22.0"

Document capture changes

For DocumentCaptureOptions in the method setDocumentCaptureMode, one of modes from BarcodeCaptureModes or DocumentCaptureModes needs to be passed instead of DocumentCaptureMode.

Biometry capture changes

Face capture should be configured using the FaceLiveness enum in the FaceCaptureOptions constructor along with FaceLivenessSecurityLevel, instead of BioCaptureMode.

Migration guide for SDK v4.21.0 

New SDK variants 

  • Face only - variant that includes only face capture functionality

  • Face + document - variant that includes face and document capture functionality

Note: face liveness can be only verified using WebBioServer.

What is needed? 

Android project that has been integrated with 4.20 version of Capture SDK.

Use the Recommended -> SampleApp project that is integrated with version 4.21 of Capture SDK. Use this project as a practical example and reference to new changes.

Assumptions 

The Migrator is aware that implementation of a new SDK version requires changes in existing code which may impact the current application’s functionality.

Changes released in version 4.21 of Capture SDK require changes in the current project to complete a successful migration.

Preparation 

Take a look at the Release Notes to get familiar with changes that were made and in compare them to the previous SDK version.

Make sure that your project builds and runs correctly before you attempt the migration process. This will make sure that possible errors connected with the migration process have an increased chance of being identified and fixed.

Code changes in brief 

BioCaptureResultHandler is replaced by result listeners dedicated for face and finger biometrics - FaceCaptureResultListener and FingerCaptureResultListener.

FingerCaptureHandler:

FingerCaptureResultListener introduces new capture result parameters. As a capture result, there is a list of finger images returned, instead of two callbacks: first with hand image, second with fingerprint images. There is just one with all the images. Additionally there is the FingerCaptureResult instance returned that holds information about finger capture liveness - FingerLivenessResult and a liveness score.

FaceCaptureHandler:

FaceCaptureResultHandler uses new representation of face images - FaceImage. It is a type that extends MorphoImage and holds information about face capture liveness. As a result of face capture there is single image returned instead of a list.