指纹识别在Android的开发中可以说是不怎么常见,但是Google对于生物识别缺失很重视,显示废弃了以往的Android6.0推出的FingerprintManager ,后针对Android9.0以上更新推出了BiometricPrompt。
Android指纹识别的应用场景其实还算挺多,只不过区别于ios系统,Android手机的硬件都是由各厂商生产的,手机档次也参差不齐,对于指纹开发来说还需要适配进行,显得比较麻烦,但针对于一些小型app开发或者是某个应用场景的特殊性以及某app指纹的必要性如指纹支付,指纹登录来说是非常重要的,接下来我们实现一个简单的指纹验证登录案例
1.引入依赖
implementation "androidx.biometric:biometric:1.1.0"
2.编写布局代码
编写main_layout.xml相关布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="指纹识别"
android:layout_gravity="center"/>
</LinearLayout>
3.使用androidx BiometricPrompt实现指纹验证功能”
在BiometricPrompt的使用中,因为它是针对api29,Android10升级的生物识别,所以无需再判断Androd版本api,直接引入应用即可
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initfinger();
}
private void initfinger() {
button=findViewById(R.id.but);
//指纹登录点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
BiometricPrompt.PromptInfo promptInfo=new BiometricPrompt.PromptInfo.Builder()
.setTitle("指纹登录")
.setDescription("用户指纹验证")
.setNegativeButtonText("取消")
.build();
getprompt().authenticate(promptInfo);
}
});
}
//我这里写了一个方法,也可以不写,直接把这个里面的代码放在上面的点击事件里也是可以的
private BiometricPrompt getprompt(){
Executor executor = ContextCompat.getMainExecutor(this);
BiometricPrompt.AuthenticationCallback callback=new BiometricPrompt.AuthenticationCallback() {
//指纹验证错误
@Override
public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
Toast.makeText(MainActivity.this,errString.toString(), Toast.LENGTH_SHORT).show();
}
//指纹验证成功
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
Toast.makeText(MainActivity.this, "指纹验证成功", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, MainActivity2.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
//指纹验证失败
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
Toast.makeText(MainActivity.this,"指纹验证失败", Toast.LENGTH_SHORT).show();
}
};
BiometricPrompt biometricPrompt=new BiometricPrompt(this,executor,callback);
return biometricPrompt;
}
}
简单说明下,就是利用BiometricPrompt去进行指纹验证,在getprompt中监听回掉验证返回结果,进行页面的跳转。
4.最终效果图
文章来源:https://www.toymoban.com/news/detail-635787.html
文章来源地址https://www.toymoban.com/news/detail-635787.html
到了这里,关于[向前一小步]Android简单实现指纹识别登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!