private FingerprintManager manager; private KeyguardManager keyguardManager;
//初始化
manager = context.getSystemService(FingerprintManager.class); keyguardManager = context.getSystemService(KeyguardManager.class);
//判断硬件是否支持指纹识别 if (!manager.isHardwareDetected()) { Toast.makeText(context, "没有指纹识别模块", Toast.LENGTH_LONG).show(); return; } //判断是否开启锁屏密码 if (!keyguardManager.isKeyguardSecure()) { Toast.makeText(context, "没有开启锁屏密码", Toast.LENGTH_LONG).show(); return; } //判断是否有指纹录入 if (!manager.hasEnrolledFingerprints()) { Toast.makeText(context, "没有指纹录入", Toast.LENGTH_LONG).show(); return; }
FingerprintManager.AuthenticationCallback mSelfCancelled = new FingerprintManager.AuthenticationCallback() { @Override public void onAuthenticationError(int errorCode, CharSequence errString) { //errorCode是失败的次数 Toast.makeText(context, "尝试次数过多,请稍后重试", Toast.LENGTH_LONG).show(); } @Override public void onAuthenticationHelp(int helpCode, CharSequence helpString) { //指纹验证失败,可再验,可能手指过脏,或者移动过快等原因。 Toast.makeText(context, "失败", Toast.LENGTH_LONG).show(); } @Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { //指纹密码验证成功 Toast.makeText(context, "成功", Toast.LENGTH_LONG).show(); } @Override public void onAuthenticationFailed() { //指纹验证失败,指纹识别失败,可再验,错误原因为:该指纹不是系统录入的指纹。 Toast.makeText(context, "失败", Toast.LENGTH_LONG).show(); } }; CancellationSignal mCancellationSignal = new CancellationSignal(); manager.authenticate(null, mCancellationSignal, 0, mSelfCancelled, null);
结束