This section covers all technical changes that should be considered when updating from previous versions, including, but not exclusively: API breaking changes or new functionality in the public API, major dependency changes, attribute changes, deprecation notices.
Example: If you're updating from SDK version 3.7.2 to 3.9.2, the changes outlined in 3.8.0, 3.9.0 and 3.9.1 are still relevant.
This version adds support for Android 15 and 16KB page size for native libraries.
- Property
LINEFINDER
was unused and has been removed fromJumioScanMode
- Property
JUMIO_PREMIUM
has been added toJumioScanMode
- Optional parameter
url
has been added toJumioDigitalDocument
INVALID_CERTIFICATE
has been added toJumioRejectReason
- Function
detach()
has been added toJumioScanView
- Tensorflow Lite dependencies have been updated to LiteRT - see https://developers.googleblog.com/en/tensorflow-lite-is-now-litert/ for more infos.
Name | Jumio Module | Dependency | old version | new version |
---|---|---|---|---|
Android Gradle Plugin | all | "com.android.library" |
8.2.2 | 8.6.1 |
Kotlin Plugin | all | "org.jetbrains.kotlin.android" |
1.9.24 | 2.0.0 |
Kotlin Stdlib | all | "org.jetbrains.kotlin:kotlin-stdlib-jdk8" |
1.9.24 | 2.0.0 |
Annotation | core | "androidx.annotation:annotation-jvm" |
1.8.0 | 1.8.2 |
Navigation UI | core | "androidx.navigation:navigation-ui-ktx" |
2.7.7 | 2.8.1 |
Navigation Fragment | core | "androidx.navigation:navigation-fragment-ktx" |
2.7.7 | 2.8.1 |
LibYUV | core | "io.github.crow-misia.libyuv:libyuv-android" |
0.34.0 | 0.36.0 |
CameraX Core | camerax | "androidx.camera:camera-core" |
1.3.3 | 1.3.4 |
CameraX Lifecycle | camerax | "androidx.camera:camera-lifecycle" |
1.3.3 | 1.3.4 |
CameraX View | camerax | "androidx.camera:camera-view" |
1.3.3 | 1.3.4 |
CameraX Camera2 | camerax | "androidx.camera:camera-camera2" |
1.3.3 | 1.3.4 |
Lifecycle Viewmodel | defaultui | "androidx.lifecycle:lifecycle-viewmodel-ktx" |
2.8.1 | 2.8.6 |
Lifecycle Savedstate | defaultui | "androidx.lifecycle:lifecycle-viewmodel-savedstate" |
2.8.1 | 2.8.6 |
Lifecycle Livedata | defaultui | "androidx.lifecycle:lifecycle-livedata-ktx" |
2.8.1 | 2.8.6 |
Tensorflow Lite | docfinder, liveness | "org.tensorflow:tensorflow-lite" |
2.16.1 | REMOVED |
LiteRT | docfinder, liveness | "com.google.ai.edge.litert:litert" |
ADDED | 1.0.1 |
Tensorflow Lite Metadata | docfinder | "org.tensorflow:tensorflow-lite-metadata" |
0.4.4 | REMOVED |
LiteRT Metadata | docfinder | "com.google.ai.edge.litert:litert-metadata" |
ADDED | 1.0.1 |
IProov | iproov | "com.iproov.sdk:iproov" |
9.1.1 | 9.1.2 |
JMRTD | nfc | "org.jmrtd:jmrtd" |
0.7.41 | 0.7.42 |
Scube | nfc | "net.sf.scuba:scuba-sc-android" |
0.0.25 | 0.0.26 |
BouncyCastle | nfc | "org.bouncycastle:bcprov-jdk18on" |
1.77 | 1.78.1 |
MLKit Barcode | barcode-mlkit | "com.google.android.gms:play-services-mlkit-barcode-scanning" |
18.3.0 | 18.3.1 |
Multiple third party android libraries include the same meta files which will result in duplicates files during the build. Please see the FAQ section for that.
new |
---|
jumio_liveness_prompt_keep_centered |
jumio_liveness_prompt_keep_still |
jumio_liveness_prompt_keep_upright |
jumio_liveness_prompt_tilt_down |
jumio_liveness_prompt_tilt_left |
jumio_liveness_prompt_tilt_right |
jumio_liveness_prompt_tilt_up |
jumio_liveness_scanning_completed |
old | new |
---|---|
jumio_liveness_prompt_success_another_shot |
jumio_liveness_prompt_success_another_scan |
jumio_liveness_prompt_too_close |
jumio_liveness_prompt_move_away |
jumio_error_case_ocr_failed |
jumio_error_case_scanning_not_possible |
TILT
has been added toJumioScanUpdate
alongside withJumioTiltState
NEXT_POSITION
has been added toJumioScanUpdate
IMAGE_TAKEN
JumioScanStep
is again sent only when the side/part is completed. If you have logic based onNEXT_PART
orPROCESSING
, it is not affected by this change.- 'UNSUPPORTED_DOCUMENT' has been added to
JumioRejectReason
Name | Jumio Module | Dependency | old version | new version |
---|---|---|---|---|
Annotation | core | "androidx.annotation:annotation-jvm" |
1.7.1 | 1.8.0 |
Appcompat | core | "androidx.appcompat:appcompat" |
1.6.1 | 1.7.0 |
Material | core | "com.google.android.material:material" |
1.11.0 | 1.12.0 |
Coroutines | core | "org.jetbrains.kotlinx:kotlinx-coroutines-android" |
1.8.0 | 1.8.1 |
LibYUV | core | "io.github.crow-misia.libyuv:libyuv-android" |
0.33.0 | 0.34.0 |
CameraX Core | camerax | "androidx.camera:camera-core" |
1.3.1 | 1.3.3 |
CameraX Lifecycle | camerax | "androidx.camera:camera-lifecycle" |
1.3.1 | 1.3.3 |
CameraX View | camerax | "androidx.camera:camera-view" |
1.3.1 | 1.3.3 |
CameraX Camera2 | camerax | "androidx.camera:camera-camera2" |
1.3.1 | 1.3.3 |
Lifecycle Viewmodel | defaultui | "androidx.lifecycle:lifecycle-viewmodel-ktx" |
2.7.0 | 2.8.1 |
Lifecycle Savedstate | defaultui | "androidx.lifecycle:lifecycle-viewmodel-savedstate" |
2.7.0 | 2.8.1 |
Lifecycle Livedata | defaultui | "androidx.lifecycle:lifecycle-livedata-ktx" |
2.7.0 | 2.8.1 |
IProov | iproov | "com.iproov.sdk:iproov" |
9.0.4 | 9.1.1 |
jumio_divider_color
has been added to customize the color of list dividers- See also: Jumio sample
styles.xml
The following keys have been added:
jumio_id_scan_guide_photo_side_tilt
jumio_id_scan_prompt_tilt_less
jumio_id_scan_prompt_tilt_more
IMAGE_TAKEN
JumioScanStep
is now sent for each image required for a specified side. This is different to previous behavior whereIMAGE_TAKEN
was sent only when the side/part was completed. Please make sure to align any logic based onIMAGE_TAKEN
to the new behavior.NEXT_PART
orPROCESSING
might be used to identify when a side/part has been finished.FLASH
has been added toJumioScanUpdate
SDK Translations for the languages Serbian (Cyrillic) and Serbian (Latin) have been added.
- Tensorflow lite update:
is replaced by"org.tensorflow:tensorflow-lite:2.10.0"
"org.tensorflow:tensorflow-lite:2.16.1"
. "com.jumio.android:camerax"
is added as a transitive dependency to"com.jumio.android:liveness"
No backward incompatible changes
⚠️ The minimum required compile SDK version for SDK4.9.0
is34
.- With these changes also Gradle 8 is required to build your application successfully. The Android Gradle plugin Upgrade Assistant can be helpful conducting the upgrade.
- Troubleshooting:
- In case you are experiencing some errors when trying to build your release application, make sure to replace all occurrences of
tasks.whenTaskAdded
withtasks.configureEach
- In case you are experiencing some errors when trying to build your release application, make sure to replace all occurrences of
- Function
getHelpAnimation()
has been deprecated for all face help animation instances inJumioScanPart
- Property
parts
has been added toJumioPhysicalDocument
- Property
idSubType
has been added toJumioIDResult
- Removed retry code
USER_BACK
fromJumioRetryReasonGeneric
. - Added
JumioRetryReasonFace
to represent new retry codes for face scanning:- GENERIC = 3001
- TOO_MUCH_MOVEMENT = 3002
- LIGHTING_TOO_BRIGHT = 3003
- LIGHTING_TOO_DARK = 3004
- EYES_CLOSED = 3005
- OBSCURED_FACE = 3006
- MULTIPLE_FACES = 3007
- SUNGLASSES = 3008
- Class
JumioDataCredential
has been removed - Property
DEVICE_RISK
has been removed fromJumioScanMode
- Property
DEVICE_RISK
has been removed fromJumioCredentialPart
- Removed Devicerisk dependency:
implementation "com.jumio.android:devicerisk:4.8.1"
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.3.1"
"com.iproov.sdk:iproov:9.0.3"
. Please note that this update also includes a major UI/UX upgrade.
-
The following customization color attributes have been added:
<item name="jumio_face_primary">
<item name="jumio_face_secondary">
<item name="jumio_face_outline">
<item name="jumio_face_success">
<item name="jumio_image_border">
<item name="jumio_bubble_outline_selected">
-
Customization attribute
has been removed<item name="jumio_face_animation_customization">
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.3.1"
"com.iproov.sdk:iproov:8.5.2"
No backward incompatible changes
No backward incompatible changes
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.3.1"
"com.iproov.sdk:iproov:8.5.2"
No backward incompatible changes
rawBarcodeData
has been removed fromJumioIDResult
LEGAL_HINT
has been removed fromJumioScanUpdate
giveDataDogConsent
has been removed fromJumioSDK
- Removed MRZ dependency:
implementation "com.jumio.android:mrz:4.6.0"
- Removed Linefinder dependency:
implementation "com.jumio.android:linefinder:4.6.0"
- Removed Barcode dependency:
implementation "com.jumio.android:barcode:4.6.0"
- Datadog update:
is replaced by"com.datadoghq:dd-sdk-android:1.19.3"
"com.datadoghq:dd-sdk-android-rum:2.0.0"
- If Datadog is used in a dynamic feature module please have a look at this known issue.
- The platform check has been moved from the
JumioSDK
constructor to theJumioController
constructor. In case the platform is not supported there will be a non-retryable F000001JumioError
delivered inJumioControllerInterface$onError
instead of aPlatformNotSupportedException
being thrown. Please also make sure to checkisSupportedPlatform
before using the SDK.
- SDK string translations for Brazilian Portuguese (pt-rBR) have been added
- Customization attribute
has been removed<item name="jumio_face_animation_background">
- Functions
persist
andstop
inJumioController
need to be called independently fromisComplete
as long as the workflow is not yet finished or canceled.
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.3.1"
"com.iproov.sdk:iproov:8.5.2"
No backward incompatible changes
JUMIO_LIVENESS
has been added toJumioScanMode
MOVE_FACE_CLOSER
has been added toJumioScanUpdate
FACE_TOO_CLOSE
has been added toJumioScanUpdate
-
A new customization theme
<item name="jumio_face_animation_customization">@style/CustomFaceHelp</item>
has been added to help customize the newly added Jumio Liveness solution. This style includes the following attributes:<item name="jumio_face_animation_foreground">
<item name="jumio_face_animation_background">
-
The following customization attributes have been added to
@style/CustomOverlay
theme:<item name="jumio_scanOverlay">
<item name="jumio_scanOverlay_livenessStrokeAnimation">
<item name="jumio_scanOverlay_livenessStrokeAnimationCompleted>
-
The following customization attributes have been removed from
@style/CustomIproov
theme:<item name="iproov_animation_foreground">
<item name="iproov_animation_background">
-
See also: Jumio sample
styles.xml
- NEW Liveness dependency:
implementation "com.jumio.android:liveness:4.6.0"
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.3.1"
"com.iproov.sdk:iproov:8.5.2"
No backward incompatible changes
-
has been removed from JumioScanPartonPause
-
JumioError.code
format updated from[A][x][yyyy]
to[A][xx][yyyy]
-
Property
countries
ofJumioIDCredential
has been deprecated. Instead the following new property and functions have been added: -
JumioDeepLinkHandler
has been added -
JumioPhysicalDocument
andJumioDigitalDocument
have been added -
JumioDocument
type has changed to interface. (OriginalJumioDocument
class has been replaced byJumioPhysicalDocument
) -
DIGITAL
has been added inJumioCredentialPart
-
DIGITAL_IDENTITY_VIEW
andTHIRD_PARTY_VERIFICATION
have been added inJumioScanStep
-
JumioRetryReasonDigitalIdentity
has been added -
JumioConsentItem
class andJumioConsentType
enum have been added -
onInitialized()
callback has been changed fromtoonInitialized(credentials: List<JumioCredentialInfo>, policyUrl: String?)
onInitialized(credentials: List<JumioCredentialInfo>, consentItems: List<JumioConsentItems>?)
- Please refer to the Consent Handling section in our integration guide for more details.
The following keys have been added to strings.xml
:
- jumio_idtype_di
- jumio_di_vendor_selection_title
- jumio_di_retry_unknown
- jumio_di_retry_third_party_verification_error
- jumio_di_retry_service_error
- jumio_di_retry_expired
- jumio_di_back_to_document_selection
- IProov update:
is replaced by"com.iproov.sdk:iproov:8.0.3"
"com.iproov.sdk:iproov:8.3.1"
No backward incompatible changes
No backward incompatible changes
credentialParts
property ofJumioCredential
class has been changed fromArrayList<JumioCredentialPart>
toList<JumioCredentialPart>
JumioConfirmationHandler
has been added. Attach a JumioScanPart to this class to retrieve all accepted images and render them toJumioConfirmationView
objects for confirmation.JumioRejectHandler
has been added. Attach a JumioScanPart to this class to retrieve all rejected images and render them toJumioRejectView
objects for retaking.- Functions in
JumioConfirmationView
have been moved toJumioConfirmationHandler
. - Functions in
JumioRejectView
have been moved toJumioRejectHandler
MULTIPART
has been added inJumioCredentialPart
as a new Autocapture scan part: Instead of having a single scan part for all parts of a document (front, back), there is now a singleMULTIPART
scan part that combines the two. Within this scan part all needed parts of a document are captured at once.NEXT_PART
has been added inJumioScanStep
: This scan step shows that the previous part has been captured and the next one can be started (e.g. frontside has been captured, now switch to the backside of the document)
- Attributes changed and added to
Iproov.Customization
theme
- IProov update:
is replaced by"com.iproov.sdk:iproov:7.5.0"
"com.iproov.sdk:iproov:8.0.3"
No backward incompatible changes
- minSdkVersion has been increased to 21. The SDK can still be integrated in Apps that support lower minSdkVersions - check if the platform is supported before initializing the JumioSDK, otherwise it will throw a PlatformNotSupportedException.
- IProov update:
is replaced by"com.iproov.sdk:iproov:7.2.0"
"com.iproov.sdk:iproov:7.5.0"
- Document Verification is now supported. Please check the Integration Guide for more information.
from packageJumioCameraPosition
com.jumio.sdk.enums
incom.jumio.sdk:core
is replaced byJumioCameraFacing
JumioAcquireMode
has been added to packagecom.jumio.sdk.enums
incom.jumio.sdk:core
, containing fieldsFILE
andCAMERA
JumioDataCredential
class has been added for handling of Device FingerprintingJumioDocumentCredential
class has been added for Document Verification handling
No backward incompatible changes
- In JumioControllerInterface the signature of function
onInitialized
has been changed. Parametercredentials
has been changed fromArrayList<JumioCredentialInfo>
toList<JumioCredentialInfo>
- In JumioResult field
credentialInfos
has been changed fromArrayList<JumioCredentialInfo>?
toList<JumioCredentialInfo>?
JumioScanSide
from packagecom.jumio.sdk.enums
incom.jumio.sdk:core
has been renamed to JumioCredentialPart
- NEW Autocapture dependency (Beta):
implementation "com.jumio.android:docfinder:4.2.0"
- Boolean
iproov_floating_prompt_enabled
has been added toIproov.Customization
theme - Color attribute ~
iproov_footerTextColor
has been replaced withiproov_promptTextColor
inIproov.Customization
theme
No backward incompatible changes
-
NEW Datadog dependency (optional):
implementation "com.jumio.android:datadog:4.1.0"
-
IProov update:
is replace by"com.iproov.sdk:iproov:7.0.3"
"com.iproov.sdk:iproov:7.2.0"
- Dark mode is now available. DefaultUI will switch automatically if system settings of the user device change.
- Dark mode can also be customized by creating a custom theme, utilizing
values-night
in the resources directory.
Added Instant Feedback functionality to give more granular user feedback with new reject reasons:
- BLACK_WHITE_COPY
- COLOR_PHOTOCOPY
- DIGITAL_COPY
- NOT_READABLE
- NO_DOC
- MISSING_BACK
- MISSING_FRONT
- BLURRY
- MISSING_PART_DOC
- DAMAGED_DOCUMENT
- HIDDEN_PART_DOC
- GLARE
ℹ️ As of version 4.0.0 and onward, the SDK can only be used in combination with Jumio KYX or Jumio API v3. API v2 as well as using API token and secret to authenticate against the SDK will no longer be compatible.
-
The repository declaration for
is replaced withjcenter()
mavenCentral()
as JFrog will be shutting down JCenter -
Additionally to that, the repository declaration
gradlePluginPortal()
was added to mitigate the gradle build plugin dependency not being migrated tomavenCentral()
yet. -
All AndroidX dependencies are now declared in the
.pom
files and resolved transitively by Gradle. The following AndroidX dependencies are used in the SDK, but do not have to be declared manually in thebuild.gradle
anymore:"androidx.appcompat:appcompat:1.3.0"
"com.google.android.material:material:1.4.0"
"androidx.constraintlayout:constraintlayout:2.1.1"
"androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
"androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
"androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1"
"androidx.lifecycle:lifecycle-extensions:2.2.0"
"androidx.recyclerview:recyclerview:1.2.1"
"androidx.fragment:fragment-ktx:1.3.6"
"androidx.navigation:navigation-ui-ktx:2.3.5"
-
The Jumio liveness dependency
"com.iproov.sdk:iproov:7.0.3"
is referenced as a transitive dependency within the iProov module and does not have to be added manually to thebuild.gradle
anymore. -
kotlin-parcelize
andkotlinx-serialization
plugins, as well as the following dependencies have been removed:org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0
org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0
andapiToken
are replaced by one-timeapiSecret
sdk.token
As of SDK version 4.0.0, a lot of SDK parameters that previously could be set in the actual code are now contained within and provided by the sdk.token
. These parameters have to be configured beforehand, during the API call that requests the token.
Please refer to the Configuration section of our integration guides for a detailed description of all Default UI changes and updates.
Information about which user journey (ID Verification, Selfie Verification, Authentication, ...) the SDK is going to provide now also has to be specified during the API call that request the sdk.token
.
For more details on individual Jumio workflows, please refer to Workflow Descriptions in our guides.
As of SDK version 4.0.0, Custom UI workflow has been completely restructured.
Please refer to the Custom UI section of our integration guides for a detailed description of all Custom UI changes and updates.
No backward incompatible changes
- IProov update:
is replaced by"com.iproov.sdk:iproov:6.4.1"
"com.iproov.sdk:iproov:6.4.3"
.
No backward incompatible changes
- IProov update:
is replaced by"com.iproov.sdk:iproov:6.3.1"
"com.iproov.sdk:iproov:6.4.1"
. This version improves conversion and offers additional customization options.
- Added additional customization attributes to the IProov theme
Iproov.Customization
:iproov_headerTextColor
iproov_headerBackgroundColor
iproov_footerTextColor
iproov_footerBackgroundColor
iproov_livenessScanningTintColor
iproov_progressBarColor
- IProov update:
is replaced by"com.iproov.sdk:iproov:6.3.0"
"com.iproov.sdk:iproov:6.3.1"
. This version fixes cross-dependency problems with okhttp 4.x
- Added attribute
iproov_backgroundColor
to the IProov themeIproov.Customization
to allow customization of the IProov background color during scanning.
-
IProov update:
is replaced by "com.iproov.sdk:iproov:6.3.0""com.iproov.sdk:iproov:6.1.0"
-
Room update:
is replaced by "androidx.room:room-runtime:2.2.6""androidx.room:room-runtime:2.2.5"
-
AndroidX Kotlin Extension update:
is replaced by"androidx.core:core-ktx:1.3.1"
"androidx.core:core-ktx:1.3.2"
-
JMRTD update:
is replaced by"org.jmrtd:jmrtd:0.7.19"
"org.jmrtd:jmrtd:0.7.24"
-
Bouncycastle update:
is replaced by"org.bouncycastle:bcprov-jdk15on:1.65"
"org.bouncycastle:bcprov-jdk15on:1.67"
-
REMOVE LocalBroadcastManager
"androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
-
REPLACE
withapply plugin: 'kotlin-android-extensions
apply plugin: kotlin-parcelize
. The extensions plugin has been deprecated by Google. The parcelize functionality has been extracted to a separate plugin.
-
setEnableEMRTD(boolean enable)
has been removed from NetverifySDK -
recreate(Activity rootActivity)
has been added to NetverifySDK - this needs to be called in case the hosting activity that was passed increate
is recreated.
-
NetverifyCustomSDKInterface$onNetverifyFinished
all parameters were replaced with a Bundle. The keys are defined as constants in theNetverifySDK.EXTRA_SCAN_REFERENCE
: -
NetverifyCustomSDKInterface$onNetverifyError
added an optional parameteraccountId
-
New methods for handling host activity lifecycle changes have been added:
-
recreate(Activity activity, NetverifyCustomSDKInterface netverifyCustomSDKInterface)
has been added to NetverifyCustomSDKController - this needs to be called in case the hosting activity is recreated. -
recreate(NetverifyCustomScanView scanView, NetverifyCustomConfirmationView confirmationView, NetverifyCustomScanInterface netverifyCustomScanInterface)
has been added to NetverifyCustomScanPresenter - this needs to be called in case the hosting activity is recreated.
-
-
The initialization and start of scan presenters has been split. This allows displaying a help view with the help animation prior to starting the scan presenter:
-
startScanForPart(ScanSide scanSide, NetverifyCustomScanView scanView, NetverifyCustomConfirmationView confirmationView, NetverifyCustomScanInterface scanViewInterface
has been replaced withinitScanForPart(ScanSide scanSide, NetverifyCustomScanView scanView, NetverifyCustomConfirmationView confirmationView, NetverifyCustomScanInterface scanViewInterface)
-
The following method was added to
NetverifyCustomScanPresenter
to trigger scanning start after the initialization. This method needs to be called on theNetverifyCustomScanPresenter
after it was initialized withinitScanForPart(..)
.
-
/**
* Starts a scan after a scan presenter has been initialized
*/
void startScan();
-
Make sure to display the
NetverifyCustomScanView
only AFTER callingstartScan()
as done in our Sample, to ensure that the scan presenter is fully initialized and the camera callbackonNetverifyCameraAvailable()
will be fired. -
is replaced withNetverifyScanMode.FACE
-
NetverifyScanMode.FACE_MANUAL
for manual face scanning -
NetverifyScanMode.FACE_IPROOV
for face scanning with IProov -
NetverifyScanMode.FACE_ZOOM
for face scanning with Facetec ZoOm
-
Due to a bug in the Jetifier, the Bouncycastle library needs to be added to the Jetifiers ignorelist in the gradle.properties
android.jetifier.blacklist=bcprov-jdk15on
Please note that the naming of this will change with the Android Gradle Plugin 4 release and will become android.jetifier.ignorelist
-
NEW AndroidX Kotlin Extension:
"androidx.core:core-ktx:1.3.1"
-
NEW Kotlin dependency:
"org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0"
-
NEW Kotlin dependency:
"org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0"
-
NEW Kotlin plugin:
"apply plugin: 'kotlinx-serialization"
-
NEW classpath definition:
"classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
-
REPLACE Jumio Face:
with either:"com.jumio.android:face"
"com.jumio.android:iproov:3.8.0@aar"
andimplementation ("com.iproov.sdk:iproov:6.1.0"){ exclude group: 'org.json', module:'json' }
or"com.jumio.android:zoom:3.8.0@aar"
and"com.facetec:zoom-authentication:8.12.1@aar"
-
AndroidX ConstraintLayout update:
is replaced by"androidx.constraintlayout:constraintlayout:2.0.1"
"androidx.constraintlayout:constraintlayout:2.0.4"
-
AndroidX Appcompat update:
is replaced by"androidx.appcompat:appcompat:1.1.0"
"androidx.appcompat:appcompat:1.2.0"
-
Google Play Services update:
is replaced by"com.google.android.gms:play-services-vision:19.0.0"
"com.google.android.gms:play-services-vision:20.1.2"
-
Google Material Library update:
is replaced by"com.google.android.material:material:1.1.0"
"com.google.android.material:material:1.2.1"
-
NetverifyCustomSDKController$setDocumentConfiguration
does not return a List with all required ScanSides anymore - they are now available as a parameter ofNetverifyCustomSDKInterface$onNetverifyResourcesLoaded
-
Method
onNetverifyPrepareScanning()
added toNetverifyCustomScanInterface
- indicates that the SDK is now loading information
Added the line -keep public class com.iproov.sdk.IProov {public *; }
to consumer Proguard rules.
Several additions and changes, mostly in regards to the new liveness flow.
-
Button style:
is replaced by<item name="netverify_confirmationPositiveStyle"> @style/Custom.Netverify.Confirmation.MaterialButton </item>
<item name="materialButtonStyle">@style/Custom.Netverify.Confirmation.MaterialButton</item>
-
Button style:
is replaced by<item name="netverify_confirmationNegativeStyle"> @style/Custom.Netverify.Confirmation.MaterialButton.Outlined</item>
<item name="materialButtonOutlinedStyle">@style/Custom.Netverify.Confirmation.MaterialButton.Outlined</item>
-
NEW IProov attribute:
<item name="iproov_customization">@style/CustomIproov</item>
-
NEW IProov theme:
<style name="CustomIproov" parent="Iproov.Customization">
-
For changes in
String.xml
file changes please refer to the sample project.
- The countryList parameter in NetverifyCustomSDKInterface$onNetverifyCountriesReceived has been changed from
HashMap
toMap
- All the attributes starting with
face_
have been removed - For a full guide please head over to the FAQ
Error code N (Access token for different product / Parts of access token are missing) has been added. Read more detailed information on this in chapter Error codes
No backward incompatible changes
No backward incompatible changes
- Zoom update:
"com.facetec:zoom-authentication:8.0.11@aar"is replaced by "com.facetec:zoom-authentication:8.12.1@aar" - Room updated:
"androidx.room:room-runtime:2.2.3"is replaced by "androidx.room:room-runtime:2.2.5" - JMRTD updated:
"org.jmrtd:jmrtd:0.7.18"is replaced by "org.jmrtd:jmrtd:0.7.19" - Bouncycastle updated:
"org.bouncycastle:bcprov-jdk15on:1.64"is replaced by "org.bouncycastle:bcprov-jdk15on:1.65"
-
getEMRTDStatus()
has been removed from NetverifyDocumentData -
New attributes for customization of the NFC help animation have been added to our
styles.xml
:netverify_nfc_passport_cover
- Outside passport cover colornetverify_nfc_passport_page_dark
- Color of the last page inside the passport after openingnetverify_nfc_passport_page_light
- Color of the flipped pages during openingnetverify_nfc_passport_foreground
- Foreground color for the passport text and the phone screennetverify_nfc_phone_background
- Frame color for the phone that is positioned on the passport
-
Attribute
netverify_nfc_dialog_theme
has been removed and is not required any more -
The position of the Jumio branding logo and privacy link changed to from bottom-right to center-top for all portrait scan views. In Custom UI, the top margin for this element can be adjusted using the following method
setBrandingLogoTopMargin(int topMargin)
- Android Zoom screens update. Details can be found in Custom theme issues
Several additions and changes in regards to the Android Zoom screens update.
Added strings:
netverify_nfc_description_xxx
stringszoom_action_xxx
stringszoom_instructions_xxx
stringszoom_result_xxx
stringszoom_retry_xxx
strings
Removed strings:
netverify_nfc_bac_dialog_xxx
stringsnetverify_nfc_description_xxx
strings
The Proguard keep rule -keep class com.jumio.** { *; }
has to be added to your Proguard rules, if it wasn't added yet.
Details can be found in chapter Proguard
No backward incompatible changes
AndroidX Material design library has been updated to version 1.1.0
"com.google.android.material:material:1.0.0"is replaced by "com.google.android.material:material:1.1.0"
Local broadcast manager dependency has been added mandatory due to the design library update where it was separated by Google
- implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
JMRTD is now added as a gradle dependency - if you use NFC scanning please make sure to add the new dependencies:
- implementation "org.jmrtd:jmrtd:0.7.18"
- implementation "org.ejbca.cvc:cert-cvc:1.4.6"
- Error code D (Wrong API credentials used, retry impossible) has been removed.
- Consumer proguard rules have been added. All Jumio SDK proguard rules will now be applied automatically to the application when the Jumio Core library is included.
- A new callback onNetverifyUserConsentRequired was added to NetverifyCustomScanInterface
- A new method onUserConsented was added to NetverifyCustomSDKController
- The SDK now uses Material buttons instead of the old snackbar button styles on the confirmation view.
- Please check out the confirmation screens and the XML output in the Surface Tool for all adapted content. Changes:
- New style attribute confirmationIcon for customizing the info and warning icon on the confirmation screen.
- New confirmation button style Netverify.Confirmation.MaterialButton for the positive button.
- New confirmation button style Netverify.Confirmation.MaterialButton.Outlined for the negative button.
- Constraint layout dependency androidx.constraintlayout:constraintlayout:1.1.3 or higher is now mandatory
- The following plugins are now required in the build.gradle of your application:
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
- Dependency name and version change - com.facetec:zoom-authentication-hybrid:7.0.14 is replaced by com.facetec:zoom-authentication:8.0.11@aar
androidx.appcompat:appcompat:1.0.2is replaced by androidx.appcompat:appcompat:1.1.0androidx.room:room-runtime:2.0.0is replaced by androidx.room:room-runtime:2.2.1
onNetverifyDisplayFlipDocumentHinthas been removed- A new parameter NetverifyConfirmationType was added to NetverifyCustomScanInterface$onNetverifyPresentConfirmationView
-dontwarn com.facetec.zoom.sdk.**
needs to be added
No backward incompatible changes
No backward incompatible changes
Added a new method checkDeallocation in the NetverifySDK to check if the SDK resources have already been deallocated. The method requires a NetverifyDeallocationCallback instance as a parameter and calls onNetverifyDeallocated
once the SDK is deallocated. The checkDeallocation method should only be called once the SDK has returned a result and another SDK instance is required.
com.facetec:zoom-authentication-hybrid:7.0.12is replaced by com.facetec:zoom-authentication-hybrid:7.0.14
All dates are now UTC based. This affects the dates in NetverifyDocumentData and NetverifyCustomNfcAccess
SDK Translations for the languages Italian and Portuguese have been added.
androidx.appcompat:appcompat:1.0.0is replaced by androidx.appcompat:appcompat:1.0.2com.facetec:zoom-authentication-hybrid:7.0.9is replaced by com.facetec:zoom-authentication-hybrid:7.0.12
A new parameter NetverifyCancelReason was added to NetverifyCustomScanInterface$onNetverifyScanForPartCanceled
Two new methods for handling watchlist screening have been added. Please refer to the Netverify guide
netverifySDK.setWatchlistScreening(NVWatchlistScreening.ENABLED);
netverifySDK.setWatchlistSearchProfile("YOURPROFILENAME");
For the new NFC scanning functionality in custom ui, there has been some additions in NetverifyCustomScanInterface:
getNetverifyCustomNfcInterface()
should return an instance of NetverifyCustomNfcInterface or Null
onNetverifyStartNfcExtraction(NetverifyCustomNfcPresenter)
is called when the NFC scanning can be started. The NFC scanning is controlled with the provided instance of NetverifyCustomNfcPresenter
The following customization attribute have been added: netverify_scanOverlayFill
Due to a license model update in our Barcode implementation, it's necessary to regenerate the offline token when updating to version 3.2.0
The position and image of the close button for face scanning can now be customized. Please have a look at the NetverifyCustomScanView
NetverifyCustomScanPresenter$getHelpAnimation has been added to get the specific help animation in case the scan part is canceled. An instance of NetverifyCustomAnimationView needs to be passed where the animation is rendered in.
com.madgag.spongycastle:prov:1.58.0.0is replaced by org.bouncycastle:bcprov-jdk15on:1.61- Proguard rules containing org.spongycastle have been replaced with org.bouncycastle
com.facetec:zoom-authentication-hybrid:7.0.5is replaced by com.facetec:zoom-authentication-hybrid:7.0.9
The dependency com.jumio.android:nv-face
was renamed to com.jumio.android:face
, reflecting the internal restructuring of the dependencies that was necessary for adding the new product Authentication
The following methods and the related parameters have been renamed to ensure consistency across all platforms
setRequireFaceMatch(..)
->setEnableIdentityVerification(..)
setRequireVerification(..)
->setEnableVerification(..)
setMerchantReportingCriteria(..)
->setReportingCriteria(..)
setMerchantIdScanReference(..)
->setCustomerInternalReference(..)
setCustomerId(..)
->setUserReference(..)
setMode(..)
must be called before the view is used. Possible values: NetverifyCustomScanView.MODE_ID or NetverifyCustomScanView.MODE_FACE
Dependencies that have been added to the SDK:
- androidx.room:room-runtime:2.0.0
- com.jumio.android:nv-face:2.15.0@aar
- com.facetec:zoom-authentication-hybrid:7.0.2@aar
com.jumio.android:nv-liveness:2.14.0@aarThe old liveness module is not supported anymore
The Facetec Maven repository also needs to be added: maven { url 'http://maven.facetec.com' }
Please have a look at the strings-jumio-sdk.xml for all the new added strings prefixed with zoom_
.
The following strings have been removed: netverify_scanview_liveness_follow_hint
, netverify_scanview_liveness_move_closer
, netverify_scanview_liveness_move_back
, netverify_scanview_liveness_description
, netverify_helpview_full_description_liveness_glasses
, netverify_helpview_full_description_liveness_cap
and netverify_helpview_full_description_liveness_light
.
The following customization attributes have been added: netverify_scanOverlayFaceBackground
, netverify_scanOverlayFaceFeedbackText
, netverify_scanOverlayFaceFeedbackBackground
, netverify_scanOverlayFaceProgress
, netverify_scanOverlayFaceOval
The following customization attributes have been removed: netverify_scanOverlayLivenessValid
, netverify_scanOverlayLivenessInvalid
, netverify_scanOverlayLivenessBackground
, netverify_scanOverlayLivenessText
The following lines need to be added in your proguard-rules.pro
file for 3D Liveness:
-keep class com.facetec.zoom.** { *; }
-dontwarn javax.annotation.Nullable
The support library was migrated to AndroidX
. As the developer page outlines, this is a mandatory step since all new Support Library development and maintenance will occur in the AndroidX library. This migration guide
shows you how to migrate your application to AndroidX.
Check out the changed dependencies in the dependencies section
or in the build.gradle
of the sample application.
The mapping for all support libraries is listed in section "Artifact mappings" here
Dependencies that changed in the SDK:
- com.android.support:appcompat-v7:27.1.1 -> androidx.appcompat:appcompat:1.0.0
- com.android.support:cardview-v7:27.1.1 -> androidx.cardview:cardview:1.0.0
- com.android.support:design:27.1.1 -> com.google.android.material:material:1.0.0
- com.android.support:support-v4:27.1.1 -> androidx.legacy:legacy-support-v4:1.0.0 (was merged by AndroidX and can be therefore be fully removed)
The default values for requireVerification
and requireFaceMatch
were changed to true
. Please make sure that they are explicitly set to false in case a scan in Fastfill mode should be performed.
The function getMiddleName()
has been removed. If a middle name is available, it will be contained with the first name.
These ABIs were deprecated in recent NDK toolsets as mentioned here - https://developer.android.com/ndk/guides/abis and are not used any more.
A fallback to manual image picker will now be used if Google Vision is not operational due to problems on the device. This guarantees the face workflow to be finished despite problems with the availablility of the Google Play services. Details are also described in sub-chapter operationality.
The method netverifySDK.isMobileVisionOperational
remains in the SDK but doesn't need to be checked now necessarily.
In addition to English, the translations for the languages Chinese (Simplified), Dutch, French, German and Spanish have been added.
Along with the additional languages, we removed some Strings that were unused in the SDK. The following keys have been removed: netverify_confirmation_snackbar_help_default
, netverify_accessibility_select_your_country
, netverify_accessibility_action_double_click
, netverify_accessibility_select_your_country
, netverify_scan_options_country_title
, netverify_overlay_liveness_advice
and netverify_scan_options_preselected_hint
.
SDK method netverifySDK.setAdditionalInformation
has been removed.
onNetverifyDisplayBlurHint()
was added for custom scan view.
The schema for errorCode
changed and it's type is now String instead of Integer.
Read more detailed information on this in chapter Error codes
No backward incompatible changes.
- SDK updated to Android plugin for gradle 3.0 - https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
- Minimum API level was raised from Android 4.1 (API level 16) to Android 4.4 (API level 19)
- New cardview dependency was added
com.android.support:cardview-v7:26.1.0
for the screen redesign. This dependency is mandatory for Netverify - Multidex is now mandatory, follow the steps Android Developers guide https://developer.android.com/studio/build/multidex.html#mdex-gradle to enable it if necessary in your app.
- Additional Proguard rules for the updated Barcode Scanner have to be added:
-keep class com.microblink.** { *; }
-keep class com.microblink.**$* { *; }
-dontwarn com.microblink.**
- SDK method for checking the Google Mobile Vision API operationality was added (see method documentation in NetverifyFragment in the Sample app))
GoogleVisionStatus NetverifySDK.isMobileVisionOperational(Activity activity, int requestCode);
The usage is explained in the Netverify guide sub-chapter operationality
Multiple additions and changes in regards to the new selection screen.
Additions and changes in regards to the new selection screen (see XML output in Surface Tool).
Attributes added for replacing the previous selection screen: netverify_scanOptionsItemHeaderBackground
, netverify_scanOptionsItemForeground
and netverify_scanOptionsItemBackground
.
- Dependency
com.jumio.android:nv-liveness:2.8.0@aar
is mandatory now.
- New Dependency
com.jumio.android:nv-liveness:2.7.0@aar
was added for face-liveness functionality. - Dependency
com.google.android.gms:play-services-vision
is now mandatory required because of added functionality. - Change SDK method
setEnableEpassport(boolean)
tosetEnableEMRTD(boolean)
because of to the support for NFC ID documents. - If the dependencies
com.jumio.android:nv-liveness
andcom.jumio.android:nv-barcode-vision
are both used in the application, the following lines have to be added to the application tag in the AndroidManifest.xml to avoid merge issues.
<meta-data
android:name="com.google.android.gms.vision.DEPENDENCIES"
android:value="barcode, face"
tools:replace="android:value"/>
- Additional Proguard rules for the Samsung Camera SDK have to be added:
-keep class com.samsung.** { *; }
-keep class com.samsung.**$* { *; }
-dontwarn com.samsung.**
No backward incompatible changes.
- Removed SDK method
setShowHelpBeforeScan(boolean)
because the collapsed help view is now constantly visible during scanning. - Add NetverifySDK method
isRooted(Context)
for device root-check before starting the SDK
Multiple additions and changes in regards to the new guidance / help screen.
Additions and changes in regards to the new guidance / help screen.
No backward incompatible changes.
The build.gradle was adapted to support standard UrlConnection for replacing okHttp
Override the theme that is used for Netverify in the manifest by calling netverifySDK.setCustomTheme(CUSTOMTHEMEID)
. Use the resource id of a customized theme that uses Theme.Netverify
as parent.
Additions and changes for customization options for the launch of the surface tool.
Use the following method to initialize the SDK before displaying it
netverifySDK.initiate(new NetverifyInitiateCallback() {
@Override
public void onNetverifyInitiateSuccess() {
}
@Override
public void onNetverifyInitiateError(int errorCode, int errorDetail, String errorMessage, boolean retryPossible) {
}
});
Name matching by comparing a provided name with the extracted name from a document was removed. The method setName("FIRSTNAME LASTNAME")
in the NetverifySDK was removed.
Additions for the customization options to support the configuration of all scan overlays.
© Jumio Corp. 395 Page Mill Road, Palo Alto, CA 94306