嗨,我是一个新手,目前正在学习移动开发。我正在开发一个应用程序,当用户按下登录按钮时,它只会提供指纹身份验证选项。但就我而言,它为用户提供了使用指纹或面部身份验证的选项。如何将用户限制为仅指纹身份验证? 在这里,我使用以下代码:
package com.example.fingerprintauth
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.biometric.BiometricPrompt
import android.widget.Button
import android.widget.Toast
import androidx.core.content.ContextCompat
import java.util.concurrent.Executor
class MainActivity : AppCompatActivity() {
private lateinit var executor: Executor
private lateinit var biometricPrompt: BiometricPrompt
private lateinit var prompt: BiometricPrompt.PromptInfo
//private var flag =0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
executor=ContextCompat.getMainExecutor(this)
biometricPrompt= BiometricPrompt(this@MainActivity,executor,object:BiometricPrompt.AuthenticationCallback(){
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
//authStatusTv.text = "Authentication Error: $errString"
Toast.makeText(this@MainActivity,"Authentication Error: $errString",Toast.LENGTH_SHORT).show()
}
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
Toast.makeText(this@MainActivity,"Authentication Success",Toast.LENGTH_SHORT).show()
startActivity(
Intent(
this@MainActivity, Home::class.java
)
)
}
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
//authStatusTv.text = "Authentication Failed"
Toast.makeText(this@MainActivity,"Authentication Failed",Toast.LENGTH_SHORT).show()
}
})
val promptInfo=BiometricPrompt.PromptInfo.Builder()
.setTitle("Biometric Authentication")
.setSubtitle("Login Using Fingerprint authentication")
.setDeviceCredentialAllowed(true)
//.setAllowedAuthenticators(BIOMETRIC_STRONG or DEVICE_CREDENTIAL)
.build()
var authbtn = findViewById<Button>(R.id.authbtn)
authbtn.setOnClickListener {
biometricPrompt.authenticate(promptInfo)
}
}
}