我试图检测用户是否使用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
}
}