首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"fingerprintManager!!.isHardwareDetected“始终返回true

"fingerprintManager!!.isHardwareDetected“始终返回true
EN

Stack Overflow用户
提问于 2019-08-28 13:04:02
回答 2查看 113关注 0票数 1

我想知道,我的应用程序运行的设备是否支持指纹。

代码语言:javascript
运行
复制
if(!fingerprintManager!!.isHardwareDetected)
{
 Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
} 

对于任何设备,总是返回true。

EN

回答 2

Stack Overflow用户

发布于 2019-08-28 13:15:29

确保您使用的是

代码语言:javascript
运行
复制
<uses-permission android:name=" android.permission.USE_BIOMETRIC" />

也是

代码语言:javascript
运行
复制
if(ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_BIOMETRIC) == PackageManager.PERMISSION_GRANTED)
{ if (!fingerprintManager!!.isHardwareDetected)
     {  //permission granted but no hardware present
     } else {
        //permission granted and hardware present
} else {
   // Permission not granted }
票数 0
EN

Stack Overflow用户

发布于 2019-11-28 02:23:36

您应该从使用FingerprintManager迁移到BiometricPrompt。这就是a blog that shows just how to do so

与使用FingerprintManager API不同,您可以通过一个方法调用:BiometricManager.from(context).canAuthenticate()来检查设备是否支持生物认证。这个单一的方法调用检查设备上是否有可用的生物识别硬件,用户是否注册了模板,以及用户是否启用了生物识别身份验证。如果这三项都不是真的,则无法显示生物识别提示。这是一个非常方便的方法,可以为您处理所有的复杂性。

代码语言:javascript
运行
复制
// Callback for the "authenticate" button in your app's UI.
override fun onClick(view: View) {
   val promptInfo = createPromptInfo()
   if (BiometricManager.from(context)
               .canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) {
       biometricPrompt.authenticate(promptInfo, cryptoObject)
   } else {
       loginWithPassword()
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57685358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档