2016-06-16 59 views
0

在Android上使用三星Fingerprint Spass Apis時,我有一個選項(說實話,我被迫)要求用戶輸入密碼,如果指紋驗證失敗的話。 現在,當Android M爲我們提供原生FingerPrint API時,我找不到實現相同功能的方法。 問題是:如果用戶無法提供正確的指紋5次,我得到的FINGERPRINT_ERROR_LOCKOUT錯誤代碼爲FingerprintManager,但我不知道如何通過備份密碼和Android組件負責提高對話。請'任何Android專家?謝謝。這裏是我的回調函數片:Android指紋API - 請求指紋密碼失敗

@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密碼,正確的密碼在用戶需要的時候,他/她進入指紋段在設備的安全設置進入。

回答

2

你必須自己動手。在這裏看到的例子:

https://github.com/googlesamples/android-FingerprintDialog/blob/master/Application/src/main/java/com/example/android/fingerprintdialog/FingerprintAuthenticationDialogFragment.java

在onError的()方法,它會調用該方法goToBackup,這將對話框更改爲密碼對話框。

我不確定三星是如何做到這一點的,以及您的目標是什麼,但是當前的Android指紋API不能回退到任何其他設備身份驗證,因此您必須使用自己的後退(請參閱第二個項目符號):

https://developer.android.com/training/articles/keystore.html#UserAuthentication