diff options
| -rw-r--r-- | core/java/android/hardware/fingerprint/FingerprintManager.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 40d31bfe438b..03221d455edb 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -1159,8 +1159,10 @@ public class FingerprintManager implements BiometricFingerprintConstants { public void onError(long deviceId, int error, int vendorCode) { if (mExecutor != null) { // BiometricPrompt case - if (error == FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED) { - // User tapped somewhere to cancel, the biometric dialog is already dismissed. + if (error == FingerprintManager.FINGERPRINT_ERROR_USER_CANCELED + || error == FingerprintManager.FINGERPRINT_ERROR_CANCELED) { + // User tapped somewhere to cancel, or authentication was cancelled by the app + // or got kicked out. The prompt is already gone, so send the error immediately. mExecutor.execute(() -> { sendErrorResult(deviceId, error, vendorCode); }); |