Biometrische Authentifizierung in Jetpack mit Komponentenaktivität komponieren?
Posted: 02 Mar 2025, 10:26
Ich versuche, meiner App mit biometrischprompt eine bio -metrische Authentifizierung hinzuzufügen, aber wenn ich die Funktion nenne, stürzt die App -Protokollierung Mainaktivität nicht auf Fragmentaktivität zu, sodass ich die Komponentenaktivität in der Mainaktivität auf die Fragmentaktivität geändert habe. Sollte ich mich an die Fragmentaktivität halten.
Und dies ist MainActivity.kt
vor
Nach
Code: Select all
fun showBiometricPrompt(context: Context, onAuthResult: (String) -> Unit) {
val activity = context as FragmentActivity val biometricManager = BiometricManager.from(context)when (biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG)) {
BiometricManager.BIOMETRIC_SUCCESS -> {
val executor = ContextCompat.getMainExecutor(context)
val biometricPrompt = BiometricPrompt(
activity,
executor,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
onAuthResult("success")
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
onAuthResult("error")
}
override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
onAuthResult("failed")
}
}
)
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Biometric Auth")
.setSubtitle("Please verify your identity")
.setNegativeButtonText("Cancel")
.build()
biometricPrompt.authenticate(promptInfo)
}
else -> {
showAlert(context, "Biometric authentication not supported")
}
}
}
vor
Code: Select all
class MainActivity : ComponentActivity() {}
Code: Select all
class MainActivity : FragmentActivity() {}