7

アプリケーションに FingerPrint API を実装しようとしています。この目的のために、Google の指紋ダイアログのサンプルに従っています。

正常に動作compileSdkVersion=23minSdkVersion=23 ますが、私のアプリケーションcompileSdkVersionは 21 でminSdkVersion14 です。この目的のために、正常に動作するFingerprintManagerCompat代わりに使用しFingerprintManagerていますが、問題はキー生成にあります。

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

キーストア パッケージとそのクラスは、キーを生成するために利用できません。キー生成用にサポートされているすべてのアルゴリズムは、18 以降の API バージョンで利用できます。下位バージョンをサポートするためのキーを生成する方法を教えてください。

4

1 に答える 1

2

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 VERSION 23 未満の場合、LegacyFingerprintManagerCompatImpl が使用され、これは単なる STUB です。例えば:

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

古いデバイスではそのような機能を使用できません。これらの API (android.security.keystore の一部) は、Android M でのみ使用できます。

于 2016-02-15T10:57:43.987 に答える