我如何知道用户是否在Android Pie中注册了指纹?



我试图检测用户是否使用BiometricPrompt在Android Pie中注册指纹,但该类将显示对话框,我只想返回true或false而没有任何对话框。

public boolean hasEnrolledFingerprints() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
//How can I return true or false without showing dialog using BiometricPrompt 
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
return fingerprintManager.hasEnrolledFingerprints();
}
return false;
}
val biometricManager =  BiometricManager.from(context)
private fun queryBiometricStatusFromDevice(): Int = biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK)

如下所示

fun hasUserConfiguredBiometric(): Boolean {
return when (queryBiometricStatusFromDevice()) {
BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> false
else -> true
}
}

最新更新