检测新的/删除的指纹注册

时间:2018-12-13 08:15:38

标签: android google-drive-team-drive

我目前正在通过我的应用中的[https://github.com/googlesamples/android-FingerprintDialog]进行指纹认证,但是无法检测到添加或删除的任何新指纹。每当指纹管理器发生更改时,我都在寻找回调/事件。

我对KeyPermanentlyInvalidatedException的理解是,它会在例如设备设置中删除了指纹或添加了新指纹。只有在

  1. 打开一个应用,密钥由mKeyGenerator.generateKey();
  2. 创建
  3. 确认指纹
  4. 最小化应用
  5. 打开设置并添加新指纹
  6. 回到应用程序并尝试再次进行身份验证,并抛出新的KeyPermanentlyInvalidatedException

但是,如果将第3点替换为“ exit the app”,而我执行以下步骤,则不会由于创建键的简单原因而引发异常。我的问题是如何检测是否在2个不同的运行时之间添加/删除了新指纹?

请帮助我解决此问题。

1 个答案:

答案 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)
        }
    }