{Day28}Biometric

Biometric

Biometric让用户不必每次打开APP时都记住帐户用户名和密码,只需使用生物识别来确认并授权访问。

BiometricManager.from(this).canAuthenticate():取得目前系统生物识别状态。
BiometricPrompt.PromptInfo.Builder():创建生物识别资讯。
BiometricPrompt("要显示的Fragment", "在主线程执行", "生物识别回调").authenticate("BiometricPrompt.PromptInfo"):设置生物识别资讯,并取得回调资讯。
dependencies {
    implementation 'androidx.biometric:biometric:1.0.1'
} 

判断手机系统的生物识别

val biometricManager = BiometricManager.from(this)
when (biometricManager.canAuthenticate()) {
     BiometricManager.BIOMETRIC_SUCCESS ->
         Log.e("GOGO", "可以使用")
     BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE ->
         Log.e("GOGO", "硬体不支持此功能")
     BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE ->
         Log.e("GOGO", "目前无法使用")
     BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED ->
         Log.e("GOGO", "没有设置")
}

调用生物识别

//设置参数
val info = BiometricPrompt.PromptInfo.Builder()
      .setTitle("标题")
      .setSubtitle("副标题")
      .setNegativeButtonText("取消")
      .build()

//设置回调
BiometricPrompt(this, ContextCompat.getMainExecutor(this),
     object : BiometricPrompt.AuthenticationCallback() {
         override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
               super.onAuthenticationError(errorCode, errString)
               Log.d("GOGO", errString.toString())
         }

         override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
               super.onAuthenticationSucceeded(result)
               Log.d("GOGO", "成功")
         }

         override fun onAuthenticationFailed() {
               super.onAuthenticationFailed()
               Log.d("GOGO", "失败")
         }
}).authenticate(info)



<<:  [Day 28] - 手把手跨出第一步!– (1)烧录闪烁程序到Arduino Part.1

>>:  Day 28 -『破釜沉舟的转职路 - 去年说要成为软件工程师的我,今年 38 岁了,我成为工程师了吗?』-- 第一天上班就想好离职的那一天是什麽时候?

Day 15 ( 中级 ) 无限循环画中画

无限循环画中画 教学原文参考:无限循环画中画 这篇文章会介绍,如何在 Scratch 3 里使用角色...

[Day13] React Native - 整理资料流,使用 Redux 吧!

Redux 官网 在还没有加入Redux之前,资料在APP中各个view的传递会需要翻山越岭,经过一...

17 - Traces - 观察应用程序的效能瓶颈 (1/6) - Elastic APM 基本介绍

Traces - 观察应用程序的效能瓶颈 系列文章 (1/6) - Elastic APM 基本介绍...

Day 21 HTML5 <HTML5 多媒体标签>

多媒体标签可以很方便的在页面中嵌入音频和视频,而不用去使用flash和其他浏览器的插件,多媒体标签主...

Day23【Web】网路通讯协定 TCP/IP

什麽是 TCP/IP? 早期网路刚开始萌芽时, 由於不同公司的硬体产品开发的网路技术, 彼此的连网技...