在Android上使用Samsung Fingerprint Spass Apis
时,如果指纹身份验证失败,我有一个选项(说实话我被迫)要求用户输入密码。
现在,当Android M为我们提供原生FingerPrint
API时,我无法找到实现相同功能的方法。
问题是:如果用户未能提供5次正确的指纹,我FINGERPRINT_ERROR_LOCKOUT
会收到FingerprintManager
错误代码,但我不知道如何使用备份密码和Android组件提出对话框对此负责。请'任何android专家?谢谢。这是我的回调功能部分:
@Override
public void onAuthenticationError(int errorCode, CharSequence errString) {
logger.info("Authentication error " + errorCode + " " + errString);
super.onAuthenticationError(errorCode, errString);
//5 failed attempts
if (errorCode == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
//HERE SAMSUNG WAS RAISING PASSWORD DIALOG WITHOUT MY INTERVENTION
fingerprintCallback.onFinished(FingerprintCallback.STATUS_AUTHENTIFICATION_FAILED);
//30 seconds no one touched the sensor
} else if (errorCode == FingerprintManager.FINGERPRINT_ERROR_TIMEOUT) {
fingeprintCallback.onFinished(FingerprintCallback.STATUS_TIMEOUT_FAILED);
//cancellation signal cancel() was called
} else if (errorCode == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
if (!isTimeout) {
fingerprintCallback.onFinished(FingerprintCallback.STATUS_USER_CANCELLED);
}
} else {
fingerprintCallback.onFinished(FingerprintCallback.STATUS_FAILED);
}
if (fingerprintDialog != null) {
fingerprintDialog.dismiss();
}
}
要清楚 - 我需要手机的PIN密码,即用户在设备安全设置中进入指纹部分时需要输入的确切密码。
答案 0 :(得分:3)
你必须自己做。请参见此处的示例:
在onError()方法中,它将调用goToBackup方法,该方法将对话框更改为密码对话框。
我不确定三星如何做到这一点以及您的意图是什么,但目前的Android指纹API无法回退到任何其他设备身份验证,因此您必须使用自己的退款(请参阅第二个项目符号):
https://developer.android.com/training/articles/keystore.html#UserAuthentication