指紋を使用してユーザーを認証するアプリケーションがあるとします。Android 5 では、Samsung デバイス専用の Samsung Spass ライブラリを使用しました。Android M リリースでは、多くのデバイスにサポートを追加します。まず、自分が Android M かどうかを確認します。次に、マネージャー インスタンスがあるかどうか、ハードウェアがあるかどうか、指紋を登録しているかどうかを確認します。
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
FingerprintManager manager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (manager != null) {
logger.info("Android native fingerprint manager exists");
if (manager.isHardwareDetected()) {
logger.info("Android native fingerprint manager detected hardware");
if (manager.hasEnrolledFingerprints()) {
logger.info("Android native fingerprint manager has enrolled fingerprints");
}
}
return new AndroidFingerprintHelper(context);
}
}
ここで失敗した場合は、フォールバックして、Android が Samsung であり、Spass ライブラリがインストールされているかどうかを確認します。問題は、ユーザーが Spass を使用して Samsung で Lollipop を使用していて、指紋を登録したかどうかです。その後、新しい指紋を登録せずに Android M にアップグレードしました。manager.hasEnrolledFingerprints()
true を返しますか? つまり、Samsung Spass ライブラリはそのデータを Android OS と共有しますか? ありがとう。