首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在onCreate()中重复验证FingerPrint

在onCreate()中重复验证FingerPrint,可以通过以下步骤实现:

  1. 导入所需的类和库:import android.Manifest; import android.content.pm.PackageManager; import android.hardware.fingerprint.FingerprintManager; import android.os.Build; import android.os.CancellationSignal; import android.support.annotation.RequiresApi; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat;
  2. 检查设备是否支持指纹识别:private boolean isFingerprintSensorAvailable() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); if (fingerprintManager != null && fingerprintManager.isHardwareDetected()) { return true; } } return false; }
  3. 请求指纹识别权限:private void requestFingerprintPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.USE_FINGERPRINT}, REQUEST_FINGERPRINT_PERMISSION); } } }
  4. 实现指纹识别回调:private void startFingerprintAuthentication() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); CancellationSignal cancellationSignal = new CancellationSignal(); fingerprintManager.authenticate(null, cancellationSignal, 0, new FingerprintManager.AuthenticationCallback() { @Override public void onAuthenticationError(int errorCode, CharSequence errString) { super.onAuthenticationError(errorCode, errString); // 处理认证错误 }
代码语言:txt
复制
           @Override
代码语言:txt
复制
           public void onAuthenticationHelp(int helpCode, CharSequence helpString) {
代码语言:txt
复制
               super.onAuthenticationHelp(helpCode, helpString);
代码语言:txt
复制
               // 处理认证帮助信息
代码语言:txt
复制
           }
代码语言:txt
复制
           @Override
代码语言:txt
复制
           public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
代码语言:txt
复制
               super.onAuthenticationSucceeded(result);
代码语言:txt
复制
               // 处理认证成功
代码语言:txt
复制
           }
代码语言:txt
复制
           @Override
代码语言:txt
复制
           public void onAuthenticationFailed() {
代码语言:txt
复制
               super.onAuthenticationFailed();
代码语言:txt
复制
               // 处理认证失败
代码语言:txt
复制
           }
代码语言:txt
复制
       }, null);
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 在onCreate()方法中调用上述方法:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
代码语言:txt
复制
   if (isFingerprintSensorAvailable()) {
代码语言:txt
复制
       requestFingerprintPermission();
代码语言:txt
复制
       startFingerprintAuthentication();
代码语言:txt
复制
   }

}

代码语言:txt
复制

这样,在onCreate()中重复验证FingerPrint的过程就完成了。请注意,上述代码仅适用于Android 6.0(API级别23)及以上的设备。在实际使用中,还需要根据具体需求进行错误处理、用户提示等操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 项目需求讨论- 让APP知道是用哪个指纹来支付和解锁

    传送门: 项目需求讨论-APP手势解锁及指纹解锁 那时候做的APP解锁是调用系统的指纹解锁功能,同时,进行指纹验证的时候,只要是手机中录制过的指纹,然后在指纹验证过程中就会认为认证成功。但仅仅这样,很难满足一些验证要求比较高的APP,比如支付类型的APP。不然我不是本人。我是女朋友啊,或者谁,我在你手机里有个指纹,为了方便解锁屏。又或者,一般朋友玩你的手机,问你锁屏密码,你也会说出来,毕竟想想是锁屏密码,然后去设置里面添加指纹也只需要锁屏密码,这时候那个朋友偷偷去录了个自己的指纹,岂不是你的指纹验证就形同虚设了。岂不是也就马上掌握你的支付账户了。

    03

    浅谈Android自定义锁屏页的发车姿势

    一、为什么需要自定义锁屏页 锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致。多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸爽程度不亚于捏气泡膜。确实,一款漂亮的锁屏能为手机增色不少,但锁屏存在的核心目的主要是三个:保护自己手机的隐私,防止误操作,在不关闭系统软件的情况下节省电量。 当下,各个款式的手机自带的系统锁屏完全能够满足这些需求,而且美观程度非凡,那么开发者为什么仍然需要构建自定义锁屏呢?让我们试想一个场景,一位正在使用音乐

    08

    STUN协议详解

    本文是基于RFC5389标准的stun协议。STUN的发现过程是基于UDP的NAT处理的假设;随着新的NAT设备的部署,这些假设可能会被证明是无效的,当STUN被用来获取一个地址来与位于其在同一NAT后面的对等体通信时,它就不起作用了。当stun服务器的部署不在公共共享地址域范围内时,stun就不起作用。如果文中有不正确的地方,希望指出,本人感激不尽 1. 术语定义 STUN代理:STUN代理是实现STUN协议的实体,该实体可以是客户端也可以是服务端 STUN客户端:产生stun请求和接收stun回应的实体,也可以发送是指示信息,术语STUN客户端和客户端是同义词 STUN服务端:接收stun请求和发送stun回复消息的实体,也可以发送是指示信息,术语STUN服务端和服务端是同义词 映射传输地址:客户端通过stun获取到NAT映射的公网传输地址,该地址标识该客户端被公网上的另一台主机(通常是STUN服务器)所识别 2. NAT类型 NAT类型有四种:     完全型锥(Full-Cone):所有来自同一个内部ip地址和端口的stun请求都可以映射到同一个外部ip地址和端口,而且,任何一个处于nat外的主机都可以向处于nat内的主机映射的外部ip和端口发送数据包。     限制型锥(Restricted-Cone):所有来自同一个内部ip地址和端口的stun请求都可以映射到同一个外部ip地址和端口,和完全性锥不同的是,只有当处于NAT内的主机之前向ip地址为X的主机发送了数据包,ip地址为X的主机才可以向内部主机发送数据包。     端口限制型锥(Port Restricted-Cone):与限制锥形NAT很相似,只不过它包括端口号。也就是说,一台IP地址X和端口P的外网主机想给内网主机发送包,必须是这台内网主机先前已经给这个IP地址X和端口P发送过数据包    对称型锥(Symmetric):所有从同一个内网IP和端口号发送到一个特定的目的IP和端口号的请求,都会被映射到同一个IP和端口号。如果同一台主机使用相同的源地址和端口号发送包,但是发往不同的目的地,NAT将会使用不同的映射。此外,只有收到数据的外网主机才可以反过来向内网主机发送包。 3. 操作概述

    03
    领券