6

Sto cercando di implementare l'API FingerPrint per la mia applicazione. Sto seguendo lo Fingerprint Dialog sample di Google per questo scopo.Come generare la chiave utilizzando KeyGenerator per l'API FingerPrint in Android

Funziona bene se compileSdkVersion=23 e minSdkVersion=23ma di compileSdkVersion mia domanda è il 21 e minSdkVersion è 14. A tal fine, sto usando FingerprintManagerCompat invece di FingerprintManager che funziona bene ma il problema è con la generazione chiave. pacchetto

android.security.keystore.KeyGenParameterSpec; 
android.security.keystore.KeyPermanentlyInvalidatedException; 
android.security.keystore.KeyProperties; 

Keystore e le classi non sono disponibili per generare la chiave, tutti gli algoritmi supportati per la generazione della chiave disponibile in 18+ versioni API, chiunque può mi guida come generare la chiave per supportare le versioni più bassi, per favore?

+0

I dispositivi inferiori a questi non hanno il sensore di impronte digitali, quindi non penso che sarebbe necessario fornire supporto all'indietro. –

risposta

2

Guardando FingerprintManagerCompat javadoc:

Una classe che coordina l'accesso all'hardware di impronte digitali.

Sulle piattaforme prima di M, questa classe si comporta come non ci sarebbe l'hardware di impronte digitali disponibile.

Guardando il codice sorgente:

final int version = Build.VERSION.SDK_INT; 
if (version >= 23) { 
    // a working implementation 
    IMPL = new Api23FingerprintManagerCompatImpl(); 
} else { 
    // an empty stub 
    IMPL = new LegacyFingerprintManagerCompatImpl(); 
} 

Se il dispositivo è inferiore API VERSION 23, il LegacyFingerprintManagerCompatImpl viene utilizzato, e questo è solo uno stub. Ad esempio:

Non è possibile utilizzare tale funzione nei dispositivi meno recenti. Queste API (alcune di android.security.keystore) sono disponibili solo su Android M