diff options
| author | 2020-12-03 18:49:17 -0800 | |
|---|---|---|
| committer | 2020-12-04 14:31:14 +0000 | |
| commit | 3e8964d4a89504a44cc9a6cc7e4f66ee093e7614 (patch) | |
| tree | 4226c605d25ebf809199432d4e76491f7fc9d446 | |
| parent | 089d0f680b48f527397c5a94fc69ffa7356c9e4c (diff) | |
Don't access fingerprint service when unavailable
For devices which don't have a fingerprint service, an attempt to
get the fingerprint system service creates an Error. We want to
avoid this, so we add a check prior to the access.
Bug: 174800840
Test: Bugreport on a non-fingerprint device no longer has a "No service published for: fingerprint" Error
Change-Id: I2e96e8cb8cc45ab86d0b2bfa9d651c85b58cd0da
| -rw-r--r-- | services/core/java/com/android/server/biometrics/BiometricService.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java index 0194259d6289..75e1938656e3 100644 --- a/services/core/java/com/android/server/biometrics/BiometricService.java +++ b/services/core/java/com/android/server/biometrics/BiometricService.java @@ -30,6 +30,7 @@ import android.app.admin.DevicePolicyManager; import android.app.trust.ITrustManager; import android.content.ContentResolver; import android.content.Context; +import android.content.pm.PackageManager; import android.database.ContentObserver; import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricConstants; @@ -809,12 +810,13 @@ public class BiometricService extends SystemService { public List<FingerprintSensorPropertiesInternal> getFingerprintSensorProperties( Context context) { - final FingerprintManager fpm = context.getSystemService(FingerprintManager.class); - if (fpm != null) { - return fpm.getSensorPropertiesInternal(); - } else { - return new ArrayList<>(); + if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) { + final FingerprintManager fpm = context.getSystemService(FingerprintManager.class); + if (fpm != null) { + return fpm.getSensorPropertiesInternal(); + } } + return new ArrayList<>(); } } |