我想知道,我的应用程序运行的设备是否支持指纹。
但
if(!fingerprintManager!!.isHardwareDetected)
{
Toast.makeText(context,"Your device doesn't support fingerprint authentication", Toast.LENGTH_SHORT).show()
}
对于任何设备,总是返回true。
发布于 2019-08-28 13:15:29
确保您使用的是
<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 }
发布于 2019-11-28 02:23:36
您应该从使用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()
}
}
https://stackoverflow.com/questions/57685358
复制相似问题