2016-08-09 152 views
0

Angenommen, ich habe eine Anwendung, die Fingerabdrücke verwendet, um Benutzer zu authentifizieren. Auf Android 5 habe ich die Samsung-Spass-Bibliothek nur für Samsung-Geräte verwendet. Mit Android M Release unterstütze ich viele Geräte. Zunächst einmal ich überprüfen, ob ich Android M bin, dann, wenn ich eine Manager-Instanz habe, wenn ich eine Hardware haben und wenn ich Fingerabdrücke registriert:Android Fingerprint API - Migration von Samsung Spass

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     FingerprintManager manager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); 
     if (manager != null) { 
      logger.info("Android native fingerprint manager exists"); 
      if (manager.isHardwareDetected()) { 
       logger.info("Android native fingerprint manager detected hardware"); 
       if (manager.hasEnrolledFingerprints()) { 
        logger.info("Android native fingerprint manager has enrolled fingerprints"); 
       } 
      } 
      return new AndroidFingerprintHelper(context); 
     } 
    } 

Wenn ich hier nicht ich zu überprüfen, Rückfall, wenn Android Samsung und es hat Spass-Bibliothek installiert. Jetzt ist die Frage: Wenn ein Benutzer Lollipop auf Samsung mit Spass hatte und Fingerabdrücke registriert hat. Danach hat er auf Android M aktualisiert, ohne neue Fingerabdrücke einzuschreiben. Wird manager.hasEnrolledFingerprints() wahr zurückgegeben? Mit anderen Worten, teilt die Samsung Spass-Bibliothek ihre Daten mit Android OS? Vielen Dank.

Antwort

1

Nun, nachdem eine Menge Forschung und Tests, die ich gefunden habe, dass: On Samsung mit Android M FingerPrintManager wird nie null, aber wenn die Fingerabdrücke Spass Library (Samsung india SDK) registriert wurden verwenden, versuchen manager.isHardwareDetected() zu nennen wird Für den nativen Android FingerPrint Manager wird false zurückgegeben.