安卓指纹识别

来源:互联网 发布:数据维护是什么意思 编辑:程序博客网 时间:2024/06/15 17:50

安卓正式引入指纹模块,是在API23版本中,所以本文只针对API23以上的,不对API23以下,各大厂商的各自的Rom指纹做说明.

首先在清单文件中加入指纹权限:

<uses-permission android:name="android.permission.USE_FINGERPRINT" />

注:我的studio版本是2.3.0,在使用中 清单文件中有这么一行代码
android:roundIcon=”@mipmap/ic_launcher_round”
会导致指纹无法识别到,我删去了这行代码就可以了.如果各位也遇到这种情况 不妨试试.
public class ShuangMianActivity extends BaseActivity {
private FingerHelper fingerHelper;
private ImageView imageViewPic;
private int type = 0;

@Overrideprotected int getLayout() {    return R.layout.activity_shuang_mian;}@Overrideprotected void initView() {    imageViewPic = (ImageView) findViewById(R.id.iv_shuangmianzhiwen_pic);}@Overrideprotected void initData() {    initFingerPrint();}private void initFingerPrint() {    fingerPrintUiHelper = new FingerPrintUiHelper(this);    fingerPrintUiHelper.startFingerPrintListen(new FingerprintManagerCompat.AuthenticationCallback() {        @Override        public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {            Toast.makeText(ShuangMianActivity.this, "指纹识别成功", Toast.LENGTH_SHORT).show();        }        @Override        public void onAuthenticationFailed() {

// Toast.makeText(MainActivity.this, “指纹识别失败”, Toast.LENGTH_SHORT).show();

        }        @Override        public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {            Toast.makeText(ShuangMianActivity.this, helpString, Toast.LENGTH_SHORT).show();        }        @Override        public void onAuthenticationError(int errMsgId, CharSequence errString) {            //但多次指纹密码验证错误后,进入此方法;并且,不能短时间内调用指纹验证            Toast.makeText(ShuangMianActivity.this, "您尝试次数过多,请稍后再试", Toast.LENGTH_SHORT).show();        }    });}

}

import android.app.Activity;
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
import android.support.v4.os.CancellationSignal;

public class FingerHelper {

private CancellationSignal signal;private FingerprintManagerCompat fingerprintManager;public FingerHelper(Activity activity) {    signal = new CancellationSignal();    fingerprintManager = FingerprintManagerCompat.from(activity);}public void startFingerPrintListen(FingerprintManagerCompat.AuthenticationCallback callback) {    fingerprintManager.authenticate(null, 0, signal, callback, null);}

}

就这样很简单的两个类 就完事了. 有不明白的可以加我QQ577695237. 加时请备注CSDN.谢谢;

0 0