如何在Android中使用用于指纹API的KeyGenerator生成密钥



我正在尝试为我的应用程序实现指纹API。为此,我正在遵循Google的指纹对话框示例。

如果compileSdkVersion=23minSdkVersion=23,它可以正常工作,但我的应用程序compileSdkVersion是 21,minSdkVersion是 14。为此,我使用 FingerprintManagerCompat 而不是 FingerprintManager 工作正常,但问题出在密钥生成上。

android.security.keystore.KeyGenParameterSpec;
android.security.keystore.KeyPermanentlyInvalidatedException;
android.security.keystore.KeyProperties;
密钥

库包及其类不可用于生成密钥,所有支持的密钥生成算法在 18+ API 版本中可用,任何人都可以指导我如何生成密钥以支持较低版本,请问?

查看 FingerprintManagerCompat javadoc:

协调对指纹硬件的访问的类。

在 M 之前的平台上,此类的行为就像没有 提供指纹硬件。

查看源代码:

final int version = Build.VERSION.SDK_INT;
if (version >= 23) {
   // a working implementation
   IMPL = new Api23FingerprintManagerCompatImpl();
} else {
   // an empty stub
   IMPL = new LegacyFingerprintManagerCompatImpl();
}

如果您的设备低于 API 版本 23,则使用 LegacyFingerprintManagerCompatImpl,这只是一个存根。例如:

@Override
public boolean hasEnrolledFingerprints(Context context) {
   return false;
}
@Override
public boolean isHardwareDetected(Context context) {
   return false;
}

您不能在旧设备中使用此功能。这些 API(一些来自 android.security.keystore)仅在 Android M 上可用

相关内容

  • 没有找到相关文章

最新更新