本文为大家分享了Android指纹识别认识和基本使用方法,供大家参考,具体内容如下
1。其实现在写指纹的博客已经有很多了,但是很多情况下,很多写的有点多,对需要快速上手和使用的人来说,没耐性去看那么多原理,源码之类的东西。大部分人都是直接复制,修改。
2。楼主表示一开始也是直接看人家代码,截一段一段的,很醉,而且下载演示还要c币啊。所以还是自己记录一下吧。也方便大家复制。哈哈。
3。首先来看一下模仿下支付宝的效果。
4。基本识别功能可以完成,至于每个人需求不一样,所以只是演示,由于本人手机最多一次识别5次5次后就要等大概30年代后才能重新识别。
5。主要代码,。
& lt; uses-permission android: name=" android.permission.USE_FINGERPRINT "/祝辞
进口android.os.Bundle; 进口handler; 进口android.os.Message; 进口android.support.v4.app.FragmentActivity; 进口android.support.v4.hardware.fingerprint.FingerprintManagerCompat; 进口android.view.View; 进口android.view.animation.CycleInterpolator; 进口android.view.animation.TranslateAnimation; 进口android.widget.Button; 进口android.widget.ImageView; 进口android.widget.TextView; 进口android.widget.Toast; 公开课FingerActivity延伸FragmentActivity { 私人按钮mCancelBtn; 私人ImageView mShakeImage; 私人TextView mTryText; 私人int mCount=5; 私人FingerPrintUtils mFingerUtils; 私人TranslateAnimation mAnimation; @Override 保护无效onCreate(包savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_finger); mCancelBtn=(按钮)findViewById (R.id.finger_cancel); mCancelBtn。setOnClickListener(新View.OnClickListener () { @Override 公共空间onClick(查看v) { 完成(); } }); mTryText=(TextView) findViewById (R.id.try_text); mTryText.setText(“请轻触感应器验证指纹”); mShakeImage=(ImageView) findViewById (R.id.image_finger); mAnimation=new TranslateAnimation (0 5 0,0); mAnimation.setDuration (800); mAnimation。setInterpolator(新CycleInterpolator (8)); mFingerUtils=new FingerPrintUtils(这个); mFingerUtils。setFingerPrintListener(新FingerCallBack ()); } 私有类FingerCallBack延伸FingerprintManagerCompat.AuthenticationCallback {//多次识别失败,并且,不能短时间内调用指纹验证 @Override 公共空onAuthenticationError (int errMsgId CharSequence进行errString) { 超级。onAuthenticationError (errMsgId errString); 如果(mCount> 1) { mCount——; mTryText.setText(指纹不匹配,还可以尝试”+ mCount +“次”); 其他}{ mTryText.setText(“1分钟后可重试!”); } mHandler。sendMessageDelayed(新消息(),1000 * 60); }//出错可恢复 @Override 公共空onAuthenticationHelp (int helpMsgId CharSequence进行helpString) { 超级。onAuthenticationHelp (helpMsgId helpString); }//识别成功 @Override 公共空间onAuthenticationSucceeded (FingerprintManagerCompat。AuthenticationResult结果){ super.onAuthenticationSucceeded(结果); mFingerUtils.stopsFingerPrintListener (); 完成(); Toast.makeText (FingerActivity。这个,”识别成功+ + +”,Toast.LENGTH_SHORT),告诉(); }//识别失败 @Override 公共空间onAuthenticationFailed () { super.onAuthenticationFailed (); 如果(mCount> 1) { mCount——; mTryText.setText(指纹不匹配,还可以尝试”+ mCount +“次”); } mShakeImage.startAnimation (mAnimation); } } 私人处理程序mHandler=new处理程序(){ @Override 公共空间handleMessage(消息味精){ super.handleMessage(味精); 如果(mFingerUtils !=null) { mFingerUtils。reSetFingerPrintListener(新FingerCallBack ()); } mCount=5; 如果(mTryText !=null) { mTryText.setText(“请轻触感应器验证指纹”); } } }; }
<强> 6。问题和方案强>
FingerPrintManagerCompat,这是一个兼容的指纹操作类,还有一个类似的叫做FingerPrintManagerCompatApi23,使用这两个类也能实现到识别指纹的功能,但是也是有不足的地方。这两个类都能实现这个效果,但是需要版本在23日或以上,如果达不到不会报错,因为它会都不做,而且相信大家也会加判断