我想知道,运行我的应用程序的设备是否支持指纹。
但是
if(!fingerprintManager!!.isHardwareDetected)
{
Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
}
对于任何设备始终返回true。
答案 0 :(得分:0)
确保您正在使用
<uses-permission android:name=" android.permission.USE_BIOMETRIC" />
也
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 }
答案 1 :(得分:0)
您应该从使用FingerprintManager
迁移到BiometricPrompt
。有a blog that shows just how to do so。
与FingerprintManager
API不同,您可以通过单个方法调用BiometricManager.from(context).canAuthenticate()
检查设备是否支持生物特征认证。此单个方法调用将检查设备上是否有可用的生物识别硬件,用户是否已注册模板以及用户是否已启用生物识别。如果所有三个都不正确,则无法显示生物识别提示。这是一种非常方便的方法,可以为您处理所有复杂性。
// 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()
}
}