版权声明:本文为DmrfCoder原创作品,如有转载请注明出处 https://blog.csdn.net/qq_36982160/article/details/82421840
之前有给应用加上指纹解锁的需求,在这里记录一下相关方法:
说明
Android的指纹支持是在6.0以后才引入的,所以要求api必须大于23.
流程
判断当前手机是否支持指纹识别
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Log.i("info", "手机支持指纹识别");
} else {
Log.i("info", "手机不支持指纹识别");
}
调用
首先声明并实例化指纹管理类:
private FingerprintManagerCompat fingerprintManagerCompat;
//用于取消指纹识别器监听的对象
private CancellationSignal cancellationSignal;
fingerprintManagerCompat = FingerprintManagerCompat.from(getActivity());
cancellationSignal = new CancellationSignal();
fingerprintManagerCompat.authenticate(null, 0, cancellationSignal, new FingerDiscentListener(), null);
编写FingerDiscentListener继承自 FingerprintManagerCompat.AuthenticationCallback:
private class FingerDiscentListener extends FingerprintManagerCompat.AuthenticationCallback {
@Override
public void onAuthenticationError(int errMsgId, CharSequence errString) {
super.onAuthenticationError(errMsgId, errString);
if (errMsgId == 5) {
//取消识别
} else if (errMsgId == 7) {
//tvHint.setText("操作过于频繁,请稍后重试");
if (cancellationSignal != null) {
cancellationSignal.cancel();
cancellationSignal = null;
}
}
}
@Override
public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
//指纹识别成功
cancellationSignal.cancel();//取消指纹的监听
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
//指纹识别失败
}
@Override
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
super.onAuthenticationHelp(helpMsgId, helpString);
}
}
结合上面的代码,加上你自己的逻辑调用,基本上就可以满足日常使用了。