activity_main.xml源码
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="@R_404_6822@://schemas.androID.com/apk/res/androID" xmlns:tools="@R_404_6822@://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:gravity="center" androID:orIEntation="vertical" androID:paddingBottom="@dimen/activity_vertical_margin" androID:paddingleft="@dimen/activity_horizontal_margin" androID:paddingRight="@dimen/activity_horizontal_margin" androID:paddingtop="@dimen/activity_vertical_margin" tools:context="com.liu.finger.MainActivity"> <TextVIEw androID:ID="@+ID/textVIEw" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Hello World!" androID:textSize="18sp" /> <button androID:ID="@+ID/btn_activity_main_finger" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_alignParentStart="true" androID:layout_below="@+ID/textVIEw" androID:layout_margintop="54dp" androID:text="指纹识别" /> </linearLayout>
MainActivity.java源码
package com.liu.finger; import androID.Manifest; import androID.app.KeyguardManager; import androID.content.Context; import androID.content.Intent; import androID.content.pm.PackageManager; import androID.harDWare.fingerprint.FingerprintManager; import androID.os.Bundle; import androID.os.CancellationSignal; import androID.support.v4.app.ActivityCompat; import androID.support.v4.app.FragmentActivity; import androID.util.Log; import androID.vIEw.VIEw; import androID.Widget.button; import androID.Widget.Toast; public class MainActivity extends FragmentActivity { FingerprintManager manager; KeyguardManager mKeyManager; private final static int REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS = 0; private final static String TAG = "finger_log"; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); manager = (FingerprintManager) this.getSystemService(Context.FINGERPRINT_SERVICE); mKeyManager = (KeyguardManager) this.getSystemService(Context.KEyguard_SERVICE); button btn_finger = (button) findVIEwByID(R.ID.btn_activity_main_finger); btn_finger.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { if (isFinger()) { Toast.makeText(MainActivity.this,"请进行指纹识别",Toast.LENGTH_LONG).show(); Log(TAG,"keyi"); startListening(null); } } }); } public boolean isFinger() { //androID studio 上,没有这个会报错 if (ActivityCompat.checkSelfPermission(this,Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { Toast.makeText(this,"没有指纹识别权限",Toast.LENGTH_SHORT).show(); return false; } Log(TAG,"有指纹权限"); //判断硬件是否支持指纹识别 if (!manager.isHarDWareDetected()) { Toast.makeText(this,"没有指纹识别模块",Toast.LENGTH_SHORT).show(); return false; } Log(TAG,"有指纹模块"); //判断 是否开启锁屏密码 if (!mKeyManager.isKeyguardSecure()) { Toast.makeText(this,"没有开启锁屏密码","已开启锁屏密码"); //判断是否有指纹录入 if (!manager.hasEnrolledFingerprints()) { Toast.makeText(this,"没有录入指纹","已录入指纹"); return true; } CancellationSignal mCancellationSignal = new CancellationSignal(); //回调方法 FingerprintManager.AuthenticationCallback mSelfCancelled = new FingerprintManager.AuthenticationCallback() { @OverrIDe public voID onAuthenticationError(int errorCode,CharSequence errString) { //但多次指纹密码验证错误后,进入此方法;并且,不能短时间内调用指纹验证 Toast.makeText(MainActivity.this,errString,Toast.LENGTH_SHORT).show(); showAuthenticationScreen(); } @OverrIDe public voID onAuthenticationHelp(int helpCode,CharSequence helpString) { Toast.makeText(MainActivity.this,helpString,Toast.LENGTH_SHORT).show(); } @OverrIDe public voID onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { Toast.makeText(MainActivity.this,"指纹识别成功",Toast.LENGTH_SHORT).show(); } @OverrIDe public voID onAuthenticationFailed() { Toast.makeText(MainActivity.this,"指纹识别失败",Toast.LENGTH_SHORT).show(); } }; public voID startListening(FingerprintManager.CryptoObject cryptoObject) { //androID studio 上,没有这个会报错 if (ActivityCompat.checkSelfPermission(this,Toast.LENGTH_SHORT).show(); return; } manager.authenticate(cryptoObject,mCancellationSignal,mSelfCancelled,null); } /** * 锁屏密码 */ private voID showAuthenticationScreen() { Intent intent = mKeyManager.createConfirmDeviceCredentialintent("finger","测试指纹识别"); if (intent != null) { startActivityForResult(intent,REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS); } } @OverrIDe protected voID onActivityResult(int requestCode,int resultCode,Intent data) { if (requestCode == REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS) { // Challenge completed,proceed with using cipher if (resultCode == RESulT_OK) { Toast.makeText(this,"识别成功",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this,"识别失败",Toast.LENGTH_SHORT).show(); } } } private voID Log(String tag,String msg) { Log.d(tag,msg); } }
通过此文希望能帮助开发AndroID 指纹识别的朋友,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的android 指纹识别调用实现方法及示例代码全部内容,希望文章能够帮你解决android 指纹识别调用实现方法及示例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)