diff options
-rw-r--r-- | core/java/android/hardware/fingerprint/FingerprintManager.java | 22 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 6b4bc1e..5f85e7d 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -380,6 +380,26 @@ public class FingerprintManager { */ public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, @NonNull AuthenticationCallback callback, int flags) { + authenticate(crypto, cancel, callback, flags, UserHandle.myUserId()); + } + + /** + * Request authentication of a crypto object. This call warms up the fingerprint hardware + * and starts scanning for a fingerprint. It terminates when + * {@link AuthenticationCallback#onAuthenticationError(int, CharSequence)} or + * {@link AuthenticationCallback#onAuthenticationSucceeded(AuthenticationResult) is called, at + * which point the object is no longer valid. The operation can be canceled by using the + * provided cancel object. + * + * @param crypto object associated with the call or null if none required. + * @param cancel an object that can be used to cancel authentication + * @param callback an object to receive authentication events + * @param flags optional flags; should be 0 + * @param userId the userId the fingerprint belongs to + * @hide + */ + public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel, + @NonNull AuthenticationCallback callback, int flags, int userId) { if (callback == null) { throw new IllegalArgumentException("Must supply an authentication callback"); } @@ -397,7 +417,7 @@ public class FingerprintManager { mAuthenticationCallback = callback; mCryptoObject = crypto; long sessionId = crypto != null ? crypto.getOpId() : 0; - mService.authenticate(mToken, sessionId, getCurrentUserId(), mServiceReceiver, flags); + mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags); } catch (RemoteException e) { Log.w(TAG, "Remote exception while authenticating: ", e); if (callback != null) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 147ac19..a02fb4a 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -16,6 +16,7 @@ package com.android.keyguard; +import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.AlarmManager; import android.app.IUserSwitchObserver; @@ -795,7 +796,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mFingerprintCancelSignal.cancel(); } mFingerprintCancelSignal = new CancellationSignal(); - mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0); + mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0, + ActivityManager.getCurrentUser()); setFingerprintRunningDetectionRunning(true); } } |