当传感器成功识别出有效指纹时,是否可以设置指纹样式,默认情况下,它将使用错误消息和带有红色的感叹号图标处理指纹无效时的样式。我正在寻找相同的方法,但将图像更改为绿色成功检查,例如whatsapp在有效指纹后更改指纹图标。是否可以在androidx生物识别技术上进行更改?我不知道图标的更改可能在哪里。
class MainActivity : AppCompatActivity() {
private var cancellationSignal: CancellationSignal ?= null;
private val authenticationCallBack :BiometricPrompt.AuthenticationCallback
get()=
@RequiresApi(Build.VERSION_CODES.P)
object: BiometricPrompt.AuthenticationCallback(){
override fun onAuthenticationError(errorCode: Int, errString: CharSequence?) {
super.onAuthenticationError(errorCode, errString)
notifyUser("Error de Autenticacion : $errString")
}
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult?) {
super.onAuthenticationSucceeded(result)
notifyUser("Autenticacion Exitosa!")
startActivity(Intent(this@MainActivity, Secret::class.java))
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<ImageButton>(R.id.btn_authenticate)
checkBiometricSupport()
button.setOnClickListener{
val biometricPrompt = BiometricPrompt.Builder(this)
.setTitle("Titulo")
.setSubtitle("Autenticacion Requerida")
.setDescription("Esta app utiliza autenticacion biometrica")
.setNegativeButton("Cancelar",this.mainExecutor,DialogInterface.OnClickListener{
dialog,which->notifyUser("Autenticacion cancelada")
}).build()
biometricPrompt.authenticate(getCancellationSignal(),mainExecutor,authenticationCallBack)
}
}
private fun notifyUser(message:String){
Toast.makeText(this,message,Toast.LENGTH_SHORT).show()
}
private fun getCancellationSignal():CancellationSignal{
cancellationSignal = CancellationSignal()
cancellationSignal?.setOnCancelListener {
notifyUser("Autenticacion cancelada por el usuario")
}
return cancellationSignal as CancellationSignal
}
private fun checkBiometricSupport():Boolean{
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
if(!keyguardManager.isKeyguardSecure){
notifyUser("Biometrics no configurado")
return false
}
if(ActivityCompat.checkSelfPermission(this,android.Manifest.permission.USE_BIOMETRIC)!=PackageManager.PERMISSION_GRANTED){
notifyUser("Permiso de Biometrics denegado")
return false
}
return if(packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)){
true
}else true
}
}
这是我正在尝试做的图像示例