Android 指纹识别的简单应用

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);

结束

发布了92 篇原创文章 · 获赞 43 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Mr___Xu/article/details/85289161