Only EMUI 4.0 (API level 23) and later versions support FIDO2.
Only EMUI 10 (API level 29) and later versions support 3D facial authentication. In addition, the device hardware must support 3D facial authentication. Currently, only Mate 20 Pro and Mate 30 Pro support 3D facial authentication.
FIDO2 automatically selects a certificate chain based on whether the device supports Huawei PKI. If the device supports Huawei PKI, FIDO2 uses the device certificate issued by Huawei CA. The certificate chain is as follows: CBG root certificate > Huawei cloud service root certificate > FIDO device certificate.
If the device does not support Huawei PKI, FIDO2 selects the device certificate from the certificate chain provided by Android KeyStore. Upload both the Huawei root certificate and Google root certificate to the FIDO server.
To download the Huawei root certificate, visit Huawei CBG Root CA.zip .
Fido2Status is the FIDO2 client error code and complies with the WebAuthn specifications. While CtapStatus is the authenticator error code and complies with the CTAP specifications. Only Fido2Status is involved in scenarios such as registration or authentication cancellation because these scenarios do not involve authenticator errors.
When using an NFC authenticator, ensure that the authenticator is in the NFC recognition area of the mobile phone and do not move it during authentication.
The FIDO BioAuthn-AndroidX SDK is implemented based on AndroidX. AndroidX cannot be used together with the Android support library. Use the BioAuthn SDK instead if you want to reference the Android support library.
For more information about AndroidX, visit https://developer.android.com/jetpack/androidx.
Only EMUI 4 (API level 23) and later versions support fingerprint authentication. In addition, the device hardware must support fingerprint authentication.
When you create PromptInfo using PromptInfo.Builder, you can only select either setDeviceCredentialAllowed(true) or setNegativeButtonText(). setDeviceCredentialAllowed(true) allows change from fingerprint authentication to another authentication mode, for example, lock screen password authentication.
When using BioAuthnPrompt.PromptInfo.Builder.setDeviceCredentialAllowed(true), pay attention to the following:
1. This function does not support devices with in-screen fingerprint sensors and running EMUI 9.x, for example, Mate 20 Pro, P30, P30 Pro, and Magic 2. If the function is used on these devices, the authentication will fail immediately when users change the authentication mode to lock screen password authentication.
2. In EMUI 9.x or earlier, fingerprint authentication may work once only. You can solve this problem in one of the following ways:
1) Do not create the BioAuthnPrompt object for the activity repeatedly.
2) After the authentication is complete, call the Activity.recreate() method to recreate the UI.
3) Close the activity and open it again.
The BioAuthn-AndroidX SDK is developed based on the androidx.biometric API. While the BioAuthn SDK is developed based on the android.hardware.fingerprint API.
The BioAuthn-AndroidX SDK provides a unified UI for fingerprint authentication. You do not need to design a fingerprint authentication UI for your app. While the BioAuthn SDK requires you to design a fingerprint authentication UI for your app.
Only EMUI 10 (API level 29) and later versions support 3D facial authentication. In addition, the device hardware must support 3D facial authentication. Currently, only Mate 20 Pro and Mate 30 Pro support 3D facial authentication.
The android.permission.CAMERA and android.permission.USE_FACERECOGNITION permissions are required for 3D facial authentication.
When a CryptoObject object is constructed, the input parameter of KeyGenParameterSpec.Builder.setUserAuthenticationRequired() must be set to false. Otherwise, the CryptoObject object will be unavailable.
This problem occurs due to the interaction specifications of the in-screen fingerprint sensor on devices running EMUI 9.x. To completely cancel the fingerprint authentication, you can close the activity that calls the authentication API when helpCode returned by the callback method BioAuthnCallback.onAuthHelp() is 1011.
Result code 907135000 indicates that the input parameter is incorrect.
Check whether the app_id and package_name parameters in the agconnect-services.json file are correct and whether the certificate signature is configured in the build.gradle file. The fault may be caused by the cache of HMS Core (APK). Reinstall HMS Core (APK), reconnect to Internet, and open your app again. It is recommended that a Huawei phone be used for testing first. HUAWEI FIDO BioAuthn depends on HMS Core (APK), which is pre-installed on all Huawei phones but not on non-Huawei phones.