diff --git a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java index e665d0fcc8368..4721f3e865431 100644 --- a/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java +++ b/core/java/android/hardware/biometrics/BiometricFingerprintConstants.java @@ -209,7 +209,8 @@ public interface BiometricFingerprintConstants { FINGERPRINT_ACQUIRED_VENDOR, FINGERPRINT_ACQUIRED_START, FINGERPRINT_ACQUIRED_UNKNOWN, - FINGERPRINT_ACQUIRED_IMMOBILE}) + FINGERPRINT_ACQUIRED_IMMOBILE, + FINGERPRINT_ACQUIRED_TOO_BRIGHT}) @Retention(RetentionPolicy.SOURCE) @interface FingerprintAcquired {} @@ -286,6 +287,13 @@ public interface BiometricFingerprintConstants { */ int FINGERPRINT_ACQUIRED_IMMOBILE = 9; + /** + * For sensors that require illumination, such as optical under-display fingerprint sensors, + * the image was too bright to be used for matching. + * @hide + */ + int FINGERPRINT_ACQUIRED_TOO_BRIGHT = 10; + /** * @hide */ diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 68dd62343eb09..c104eebbdb2c6 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -1420,6 +1420,9 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing case FINGERPRINT_ACQUIRED_IMMOBILE: return context.getString( com.android.internal.R.string.fingerprint_acquired_immobile); + case FINGERPRINT_ACQUIRED_TOO_BRIGHT: + return context.getString( + com.android.internal.R.string.fingerprint_acquired_too_bright); case FINGERPRINT_ACQUIRED_VENDOR: { String[] msgArray = context.getResources().getStringArray( com.android.internal.R.array.fingerprint_acquired_vendor); diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index b76a7804461e5..092a0442ecf58 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2528,6 +2528,7 @@ + diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java index d69151da55f67..0062d31962a9f 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintUtils.java @@ -18,9 +18,11 @@ package com.android.server.biometrics.sensors.fingerprint; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_GOOD; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMAGER_DIRTY; +import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMMOBILE; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_INSUFFICIENT; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_PARTIAL; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_START; +import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_BRIGHT; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_FAST; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_SLOW; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_VENDOR; @@ -188,6 +190,8 @@ public class FingerprintUtils implements BiometricUtils { case FINGERPRINT_ACQUIRED_TOO_FAST: case FINGERPRINT_ACQUIRED_VENDOR: case FINGERPRINT_ACQUIRED_START: + case FINGERPRINT_ACQUIRED_TOO_BRIGHT: + case FINGERPRINT_ACQUIRED_IMMOBILE: return true; default: diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java index 0ae2e381cf149..341aaa64d4344 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/AidlConversionUtils.java @@ -78,7 +78,7 @@ final class AidlConversionUtils { return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_UNKNOWN; } else if (aidlAcquiredInfo == AcquiredInfo.TOO_BRIGHT) { // No framework constant available - return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_UNKNOWN; + return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_TOO_BRIGHT; } else if (aidlAcquiredInfo == AcquiredInfo.IMMOBILE) { return BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_IMMOBILE; } else if (aidlAcquiredInfo == AcquiredInfo.RETRYING_CAPTURE) {