当用户触摸传感器时,我从回调onAuthenticationSucceeded(Cipher)中获取已初始化的Cipher,并将其用于解密。
这在除三星手机外的其他设备上都能正常工作。而在三星手机上,当我尝试使用返回的Cipher时,有时会抛出android.security.KeyStoreException: Key user not authenticated的异常。这意味着即使Cipher是由onAuthenticationSucceeded(Cipher)返回的,Android KeyStore仍认为用户未通过指纹传感器进行身份验证。
似乎这个崩溃主要发生在应用程序长时间未使用后。当应用程序启动后,通常就能正常工作。
由于这个错误只在三星手机等少数设备上随机出现,看起来是由于三星对Android 6.0 KeyStore和FingerPrint API实现的内部时序问题所导致。
编辑:也在一加和宏碁手机上遇到了此问题。