Android 接入指纹识别

接入指纹框架:https://github.com/Tencent/soter

implementation 'com.github.Tencent.soter:soter-wrapper:2.0.9'

1.Application中初始化

class IApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        instance = this
        initSort()
   }
        
    private fun initSort() {
        val param = InitializeParamBuilder()
            .setScenes(100)
            .build()
        SoterWrapperApi.init(this, { result ->
            logDebug("$result")
        }, param)
    }
  }

2.准备密钥

  SoterWrapperApi.prepareAuthKey(
            { result ->
                logDebug("init sort = $result")
                if (result.errCode == SoterErrCode.ERR_OK) {
                //支持指纹
                    binding.llFingerPay.visibility = View.VISIBLE
                } else {
                    binding.llFingerPay.visibility = View.GONE
                }

            }, false, true, 100, null, null
        )

也可以通过准备密钥结果来判断是否设备是否支持指纹

3.调起系统指纹进行验证

3.1 请求验证前获取AuthenticationParam

    private var canceller: SoterBiometricCanceller? = null
    fun getAuthParam(act: AppCompatActivity?, showPassword: Boolean = true): AuthenticationParam {
        canceller = SoterBiometricCanceller()
        canceller!!.refreshCancellationSignal()
        val param = AuthenticationParam.AuthenticationParamBuilder()
            .setScene(100)
            .setContext(act)
            .setBiometricType(ConstantsSoter.FINGERPRINT_AUTH)
            .setSoterBiometricCanceller(canceller)
            //用于获取挑战因子的网络封装结构体。如果在授权之前已经通过其他模块拿到后台挑战因子,则可以改为调用setPrefilledChallenge
            .setPrefilledChallenge("test1")
            .setSoterBiometricStateCallback(object : SoterBiometricStateCallback {
                override fun onStartAuthentication() {
                  //开始验证
                }

                override fun onAuthenticationHelp(
                    helpCode: Int,
                    helpString: CharSequence?
                ) {
                   
                }

                override fun onAuthenticationSucceed() {
                   //验证成功
                }

                override fun onAuthenticationFailed() {
                   //指纹错误
                }

                override fun onAuthenticationCancelled() {
                    //用户主动取消,可能会切换密码
                  
                }

                override fun onAuthenticationError(
                    errorCode: Int,
                    errorString: CharSequence?
                ) {
                   //验证异常
                }

            }).build()


        return param

    }

3.2 请求验证

        SoterWrapperApi.requestAuthorizeAndSign({ result ->
            if (result.isSuccess) {
            //每个手指的指纹标识
            val fid = result.extData.fid
               //指纹验证成功

            } else {
            //指纹不匹配或其他错误
                showFingerError(result)
            }
        }, authParam)

多个指纹,可以使用fid进行判断对比。

最后权限:

<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Web接入指纹识别仪是指通过Web技术实现对指纹识别仪的访问和控制。传统的指纹识别仪通常通过串口或网络接口连接到计算机,使用特定的软件进行操作和管理。而Web接入指纹识别仪则将这一过程转移到了Web浏览器中,可以通过简单的网页操作来实现对指纹识别仪的访问和管理。 Web接入指纹识别仪的优势在于更加方便和灵活。传统的指纹识别仪需要安装特定的软件,使用起来相对繁琐,而Web接入则只需要一个浏览器,无需安装额外的软件,随时随地都可以使用。用户只需打开网页,即可进行指纹登记、查询、比对等操作,大大提高了操作的便利性。 通过Web接入指纹识别仪,可以实现多种功能。比如,可以用于人员出入管理系统,通过指纹识别来控制门禁的开关;也可以用于考勤系统,实现员工的指纹打卡记录;还可以用于身份验证,确保网上交易的安全性等等。因为Web接入的灵活性,可以与其他的系统集成使用,满足不同场景的需求。 当然,Web接入指纹识别仪也存在一些挑战。首先是安全问题,要保证数据的传输和存储安全,防止被黑客攻击。其次是兼容性问题,不同型号、不同厂商的指纹识别仪可能存在兼容性差异,需要进行适配和测试。此外,还需要考虑性能和响应速度的优化,以提供更好的用户体验。 总的来说,Web接入指纹识别仪的出现极大地方便了用户的使用,提高了安全性和效率。随着Web技术的不断发展,相信Web接入指纹识别仪将会在越来越多的领域得到应用,为我们的生活带来更多便利和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哆啦A梦z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值