diff options
author | Alex Klyubin <klyubin@google.com> | 2015-04-30 19:45:54 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-30 19:45:55 +0000 |
commit | 033dc46bb949a9a5e42ed51bbff1e055a7c58ca2 (patch) | |
tree | 25d5c6d99ca318a87a9eba266a96670d4182ae53 /keystore/java | |
parent | 3cd8ec3c6832ee142e217e2653cce58de3f1dba1 (diff) | |
parent | 2d7a85cd2b2ab4dbbe09354c6ae1668bff51a514 (diff) | |
download | frameworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.zip frameworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.tar.gz frameworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.tar.bz2 |
Merge "Switch from FingerprintService to FingerprintManager." into mnc-dev
Diffstat (limited to 'keystore/java')
-rw-r--r-- | keystore/java/android/security/KeyStore.java | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 5b0e74a..82d328b 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -21,7 +21,7 @@ import android.app.Application; import com.android.org.conscrypt.NativeConstants; import android.content.Context; -import android.hardware.fingerprint.IFingerprintService; +import android.hardware.fingerprint.FingerprintManager; import android.os.Binder; import android.os.IBinder; import android.os.RemoteException; @@ -79,11 +79,27 @@ public class KeyStore { private int mError = NO_ERROR; private final IKeystoreService mBinder; + private final Context mContext; private IBinder mToken; private KeyStore(IKeystoreService binder) { mBinder = binder; + mContext = getContext(); + } + + private static Context getContext() { + ActivityThread activityThread = ActivityThread.currentActivityThread(); + if (activityThread == null) { + throw new IllegalStateException( + "Failed to obtain application Context: no ActivityThread"); + } + Application application = activityThread.getApplication(); + if (application == null) { + throw new IllegalStateException( + "Failed to obtain application Context: no Application"); + } + return application; } public static KeyStore getInstance() { @@ -620,36 +636,18 @@ public class KeyStore { } } - private static long getFingerprintOnlySid() { - IFingerprintService service = IFingerprintService.Stub.asInterface( - ServiceManager.getService(Context.FINGERPRINT_SERVICE)); - if (service == null) { + private long getFingerprintOnlySid() { + FingerprintManager fingerprintManager = + mContext.getSystemService(FingerprintManager.class); + if (fingerprintManager == null) { return 0; } - String opPackageName = getMyOpPackageName(); - - try { - long deviceId = 0; // TODO: plumb hardware id to FPMS - if (!service.isHardwareDetected(deviceId, opPackageName)) { - return 0; - } - - return service.getAuthenticatorId(opPackageName); - } catch (RemoteException e) { - throw new IllegalStateException("Failed to communicate with fingerprint service", e); + if (!fingerprintManager.isHardwareDetected()) { + return 0; } - } - private static String getMyOpPackageName() { - ActivityThread activityThread = ActivityThread.currentActivityThread(); - if (activityThread != null) { - Application application = activityThread.getApplication(); - if (application != null) { - return application.getOpPackageName(); - } - } - throw new IllegalStateException("Cannot create AudioRecord outside of an app"); + return fingerprintManager.getAuthenticatorId(); } /** |