AndroidX生物识别指纹图像提示样式

时间:2020-06-14 22:20:31

标签: kotlin androidx biometrics

当传感器成功识别出有效指纹时,是否可以设置指纹样式,默认情况下,它将使用错误消息和带有红色的感叹号图标处理指纹无效时的样式。我正在寻找相同的方法,但将图像更改为绿色成功检查,例如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
    }
}

这是我正在尝试做的图像示例

WhatsApp lock screen

0 个答案:

没有答案