Android SDK
SDK 3.21
News for release: SDK 3.21
- Added new risk parameters
SSID,BSSID,Barometer,Gravity,Magnetometer,IsDeveloperMode,IsOverlayDetected,IsProxyEnabled,IsVpnEnabled,Locale.Set SSID/BSSID permissionsIf you enable the SSID and/or BSSID risk parameters, then you need to set up the necessary permissions in your
AndroidManifest.xmlfile.
To learn how to do this, see Wi-Fi information (SSID and BSSID) in our Risk parameters feature documentation. - For Recovery, renamed enum entry
RecoveryMethod.CLOUD_BACKUPtoRecoveryMethod.CLOUD_BACKUP_RECOVERY_CODE.Breaking changeThis is a breaking change. Replace any occurrences of
RecoveryMethod.CLOUD_BACKUPwithRecoveryMethod.CLOUD_BACKUP_RECOVERY_CODEin your code. - To align with iOS, Android now returns error code
clientErrorAuthMethodUnavailableinstead ofclientErrorAuthMethodNotAllowedin cases where biometrics are not enrolled on the device.NoteclientErrorAuthMethodNotAllowedis still returned in cases where an authentication method is being used but is not yet activated, or if not enabled in the server configuration. - Added error code
clientErrorClientDataInvalid, which indicates that the provided client data in the start authentication operation is invalid for one of the following reasons:- It exceeds the maximum size of 1024 bytes (UTF-8 encoded).
- It contains one or more 4-byte UTF-8 characters (this includes most emojis, such as 👍).
- For error handling, added the exception class to each entry in the
ErrorCode, so that the developer can look up the exception class for each error code. - Removed SDK error code
serverErrorAuthenticationRequired.
SDK 3.20
News for release: SDK 3.20
- Updated minimum Android version to Android 9 (API 28).
- Encap Android API rewritten from Java to Kotlin 2.0, backwards compatible with API 3.19.
- This rewrite adds a new dependency to
kotlin-stdlibversion 2.0.
- This rewrite adds a new dependency to
- Added support for recovery using face scan, in addition to keeping recovery code.
- Added classes:
RecoveryParameterRecoveryCodeRecoveryParameterServerSideFaceRecoveryParameter
- Added enum entry
RecoveryMethod.CLOUD_BACKUP_SERVER_SIDE_FACE. - Added
Controllermethods accepting acceptingRecoveryParameter:fun finishAddOrUpdateRecovery(recoveryParameter: RecoveryParameter, appCallback: AsyncCallback<FinishAddOrUpdateRecoveryResult>)fun finishRecovery(recoveryParameter: RecoveryParameter, activationParameter: ActivationParameter, appCallback: AsyncCallback<FinishRecoveryResult>)fun finishDeleteRecovery(recoveryParameter: RecoveryParameter, appCallback: AsyncCallback<FinishDeleteRecoveryResult>)
- Deprecated class
EncapRecoveryParameterandControllermethods accepting it.
- Added classes:
- Removed deprecated
Controllermethods:void startAddOrUpdate(String clientData, AsyncCallback<StartAddOrUpdateResult> callback);
- Removed SDK error code
serverErrorAlreadyAuthenticated. - Removed SDK error code
clientErrorGoogleServicesOutdatedandGooglePlayServicesOutdatedException.
SDK 3.19
News for release: SDK 3.19
- Updated minimum Android version to Android 8 (API 26).
- The authentication method
AuthMethod.DEVICE_ANDROID_FINGERPRINTis removed completely. UseAuthMethod.DEVICE_ANDROID_BIOMETRIC_PROMPTinstead. Users that are already using Fingerprint can migrate from Pin to Biometric using addOrUpdate. To migrate from Fingerprint to Biometric an earlier version of the SDK needs to be used. - Added new authentication method
AuthMethod.DEVICE_SERVER_SIDE_FACE.What is the use case?The current primary use case is to change the PIN when the end-user has forgotten it and has no valid biometrics.
- Added new
Controllermethods:void startAddOrUpdate(@NonNull StartAddOrUpdateParameter startParameter, @NonNull AsyncCallback<StartAddOrUpdateResult> callback);
Note- For use with server-side face only, use start calls with
StartAddOrUpdateParameter(AuthMethod.DEVICE_SERVER_SIDE_FACE). - For use with
clientData, use start calls withStartAddOrUpdateParameter(String clientData).
- Deprecated
Controllermethods:void startAddOrUpdate(String clientData, AsyncCallback<StartAddOrUpdateResult> callback);
NoteThe
String clientDataargument to the above method is made obsolete by the new method acceptingStartAddOrUpdateParameter(String clientData). - If biometrics or fingerprint are not enrolled or enabled on the device, then return
BiometricAuthenticationExceptionwithclientErrorAndroidBiometricPromptErrorNoBiometrics. This is instead ofUnexpectedExceptionwithclientErrorUnexpected. - Added @NonNull and @Nullable to all Controller methods, to ease interfacing with Kotlin.
PROCESSING_DEACTIVATIONis now a blocking state. If a new operation is started before deactivation is finished, then aclientErrorOperationInProgresserror is returned.
SDK 3.18
News for release: SDK 3.18
- Documentation improvements:
- Restructured to improve usability.
- Multiple sections have been rewritten.
- Added new examples which are easier to copy and paste.
- Deprecated the fingerprint authentication method. This means that it will be removed in a future release.
- Added the annotation
@NonNullto both theOnSuccessandOnFailurefunctions ofAsyncCallback. - Unified the operation context methods. This means that the following functions on result classes
FinishActivationResultandFinishAuthenticationResultare renamed:NoteThis matches the method names for
StartAuthenticationResultand on iOS.
The old methods are deprecated. They will be removed in the next release.
SDK 3.17
News for release: SDK 3.17
- Updated minimum Android version to Android 7.
- Safety Net attestation is replaced with Play Integrity. You can learn more in our feature documentation.
- The two activation and authentication parameters for Biometric Prompt now expose
setConfirmationRequired(). - Removed Intermediate push feature. You must use Play Integrity for app attestation instead. You can learn more in our feature documentation.
- Removed deprecated API methods:
SDK 3.16
News for release: SDK 3.16
- Added new feature Client debug data. You can learn more in our feature documentation.
- Added new
EncapConfigsettingsetAllowDebugData.- This is set to true by default.
- This can be set to false to reserve a device from sending debug data, even if it is turned on in your Application configuration.
- Deactivating a non-activated registration on the client no longer results in an error.
- Removed documentation about fingerprint.
- For all new implementations, we recommend using Biometric Prompt.
- If fingerprint is needed on Android versions 6-8, we recommend using Biometric Prompt with AndroidX library.
- The removed fingerprint documentation can still be accessed in an older version of this document if needed.
- Removed documentation about How to build with Maven.
- The removed documentation about integration with Maven can still be accessed in an older version of this document if needed.
- SafetyNet attestation will be replaced with Play Integrity in version 3.17.
- Deprecated API methods:
SDK 3.15
News for release: SDK 3.15
- Replaced error
clientErrorKeyPermanentlyInvalidatedwith code180, with errorclientErrorAuthDataInvalidatedwith code132. This is to match the iOS implementation. - Added support for cancelling an ongoing Biometric authentication for AndroidX BiometricPrompt.
- The app can cancel an ongoing Biometric authentication by supplying a
CancellationSignalto theDeviceAndroidBiometricPromptAuthParameter, and calling thecancel()method. - For AndroidX BiometricPrompt, this is implemented so that the Encap API sets up a listener on the
CancellationSignalthat will call thecancelAuthentication()method of the AndroidX BiometricPrompt.
- The app can cancel an ongoing Biometric authentication by supplying a
- Deprecated Intermediate Push attestation. This will be removed in a future release.
SDK 3.14
News for release: SDK 3.14
- Added new feature for Geofencing. In this feature, the SDK performs a lookup of the device location to an external Geocoder service and sends the country code to the server. You can learn more in our feature documentation.
- Changed name of
AuthenticateAndActivatetoAddOrUpdate.- On iOS, this function has always been called
AddOrUpdate. Android is now changing to make the two controller interfaces look more similar.
- On iOS, this function has always been called
- Removed Signing feature. is removed. This means that these functions do not exist any more and you need to remove the use of it in your app:
EncapConfig.Builder: setSigningEnabled(), setSigningKeySize()EncapController: startAuthenticationOrSigning(), startSigning(), FinishSigning()EncapController.State: isSigningState()PushMessage: isSigningMessage()SigningFailedException, StartSigningResult, FinishSigningResult
- Added new error code
serverErrorInvalidSession. This means that if a new session is started on the server after the client has donestartAuthenticate, then you will get this error duringfinishAuthenticate, and you need to dostartAuthenticateagain. - Removed error codes:
serverErrorIncorrectSignatureserverErrorInvalidSignature