9

我试图使用Google示例生成密钥对(BasicAndroidKeyStore)。我所做的唯一修改是将setUserAuthenticationRequired(true)设置为KeyGenParameterSpec.BuilderAndroid Key Store API 23,使用setUserAuthentication而不使用指纹扫描器

我相信它会正常工作与嵌入式指纹扫描仪的设备上,但万普拉斯一个运行它(在Android 6.0下工作),我得到以下异常:

At least one fingerprint must be enrolled to create keys requiring user authentication for every use

的手机确实锁屏设置为使用该模式,但显然它需要指纹进行验证。任何想法如何使用API​​ 23密钥存储没有实际的指纹识别器?

回答

0

我也遇到过与moto设备相同的问题。 至于现在我已经完成了这个代码。在使用指纹认证之前进行检查。

public boolean isFingerprintAuthAvailable() { 
    //FingerprintManager mFingerprintManager; 
    return mFingerprintManager.isHardwareDetected() 
      && mFingerprintManager.hasEnrolledFingerprints(); 
} 

欲了解更多,请点击这里sample从我已经实施。希望可以帮到你...

+0

有没有什么方法可以使用新的API来执行一些其他类型的认证,如模式或密码?有可能使用不赞成的API – kmalmur

+0

@kmalmur检查我的更新答案... – androidnoobdev

+0

纠正我,如果我错了,但是您链接的样本不处理密钥生成,如果API低于23 – kmalmur