2016-07-13 20 views
1

Ein bisschen ein seltsames Problem bei der Verwendung des Fingerabdruck-Scanners in Android 6.0 (Marshmallow), dass ich feststecken und nicht herausfinden kann.Android - Fingerabdruck-Scanner funktioniert nach 5 Versuchen nicht mehr?

Ich habe überall gesucht, aber kann nur Dinge im Zusammenhang mit Hardware-Defekten sehen.

Die Anwendung akzeptiert, verschlüsselt, entschlüsselt und validiert Fingerabdrücke gut, aber es erlaubt nur 5 Versuche, bevor es aus irgendeinem Grund nicht mehr funktioniert. (Mehr dazu unten)

Ich habe die Anwendung so eingerichtet, dass der Benutzer vier Scanversuche durchführen kann, bevor er einen Sicherheitssperrungstimer implementiert, wenn ich jedoch viermal absichtlich nicht authentifiziere. Dann warte ich auf Sperrzeit von 5 Minuten und komme zurück Ich kann nur meinen Finger einmal scannen, danach hört der Fingerabdruck auf zu hören, bis ich die Anwendung von Applications Manager beende.

Es akzeptiert dann wieder Fingerabdrücke.

-Code für authenticationFailed Rückruf:

@Override 
public void onAuthenticationFailed() { 
    authenticationDialog.dismiss(); 
    cancellationSignal.cancel(); 

    //Add one to the number of attempts taken 
    attemptCount += 1; 

    if (attemptCount < maxAttempAllowance) { 
     AlertDialog.Builder message = new AlertDialog.Builder(appContext); 
     message.setTitle("Authentication Failed"); 
     message.setMessage("The finger you scanned is not registered in your devices settings or your device failed to identify you."); 
     message.setPositiveButton("Try Again", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.dismiss(); 
       showAuthenticationDialog(); 
       startAuth(manager, cryptoObject); 
      } 
     }); 
     message.setIcon(R.drawable.cross_flat); 
     message.setCancelable(false); 
     message.show(); 
    } 
    else { 
     AlertDialog.Builder message = new AlertDialog.Builder(appContext); 
     message.setTitle("Authentication Failed"); 
     message.setMessage("You have exceeded the maximum login attempts allowed. Try again in 5 minutes."); 
     message.setIcon(R.drawable.cross_flat); 
     message.setCancelable(false); 
     message.show(); 
     setSecurityBanTimer(); 
    } 
} 

Auch ohne die Aussperrung Sicherheitscode der Scanner noch akzeptiert nur 5 druckt.

+1

wird 'tempoCount' nach dem' setSecurityBanTimer' zurückgesetzt? –

+0

Ich werde das ändern und Ihnen sagen, ob es in etwa 2 min behebt oder nicht. :) –

+0

Das behebt das Problem nicht. –

Antwort

4

Ich habe festgestellt, dass die API die Sicherheit zwingt, eine Lücke von 30 Sekunden zwischen dem fünften und weiteren Versuchen zu haben.

Dies bedeutet, dass der Scanner nach dem 5. Versuch nicht mehr reagiert, wenn die Sicherheit der Anwendung setzt auf 4. Aussperrung

Dokumentation:

Geräteimplementierungen mit einem sicheren Sperrbildschirm ein enthalten sollte Fingerabdruck Sensor. Wenn eine Geräteimplementierung einen Fingerabdrucksensor und eine entsprechende API für Entwickler von Drittanbietern enthält, MÜSSEN Sie versuchen, nach 5 Fehlversuchen für die Fingerabdrucküberprüfung mindestens 30 Sekunden lang die Ratenlimitversuche zu versuchen.

Informationen finden here.

+0

Corrent Dokument Link ist hier -> https://source.android.com/compatibility/6.0/android-6.0-cdd#7_3_10_fingeprint –