0

我正在尝试检测用户是否已在 Android Pie 中注册指纹,BiometricPrompt但此类将显示对话框,我只想返回 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;
}
4

1 回答 1

1
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
    }
}
于 2021-09-20T14:58:58.453 回答