我目前正在通过我的应用中的[https://github.com/googlesamples/android-FingerprintDialog]进行指纹认证,但是无法检测到添加或删除的任何新指纹。每当指纹管理器发生更改时,我都在寻找回调/事件。
我对KeyPermanentlyInvalidatedException的理解是,它会在例如设备设置中删除了指纹或添加了新指纹。只有在
但是,如果将第3点替换为“ exit the app”,而我执行以下步骤,则不会由于创建键的简单原因而引发异常。我的问题是如何检测是否在2个不同的运行时之间添加/删除了新指纹?
请帮助我解决此问题。
答案 0 :(得分:0)
在应用启动时,您必须检查您的密钥库是否包含先前创建的密钥
private var keyStore: KeyStore = KeyStore.getInstance("AndroidKeyStore")
private var cipher = Cipher.getInstance(...)
init {
try {
keyStore.load(null)
val key = keyStore.getKey(DEFAULT_KEY_NAME, null)
if (key == null) {
generateKey()
}
} catch (e: Throwable) {
Timber.e(e)
}
}