Android Key Store API 23,使用setUserAuthenticationRequired而不使用指纹扫描程序

kma*_*mur 9 android android-keystore android-security android-fingerprint-api

我尝试使用Google示例(BasicAndroidKeyStore)生成密钥对.我做的唯一修改是设置setUserAuthenticationRequired(true)KeyGenParameterSpec.Builder.

我认为它可以在带有嵌入式指纹扫描仪的设备上正常工作,但是在OnePlus One上运行(在Android 6.0下工作),我得到以下异常:

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

手机确实设置了锁定屏幕以使用该模式,但显然它需要指纹进行身份验证.知道如何在没有实际指纹识别器的情况下使用API​​ 23密钥库吗?

Was*_*mon 0

我在使用 moto 设备时也遇到了同样的问题。目前我已经完成了这段代码。使用指纹认证前进行检查。

public boolean isFingerprintAuthAvailable() {
    //FingerprintManager mFingerprintManager;
    return mFingerprintManager.isHardwareDetected()
            && mFingerprintManager.hasEnrolledFingerprints();
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请检查我实施的这个示例。希望能帮到你...