Ответ
Да, работал с биометрией на Android. Использовал BiometricPrompt API для аутентификации пользователей. Вот пример кода:
val biometricPrompt = BiometricPrompt(
activity,
ContextCompat.getMainExecutor(activity),
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
// Успешная аутентификация
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
// Ошибка аутентификации
}
}
)
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Вход")
.setSubtitle("Используйте отпечаток пальца")
.setNegativeButtonText("Отмена")
.build()
biometricPrompt.authenticate(promptInfo)
Также учитывал:
- Проверку доступности биометрии через
BiometricManager - Поддержку разных типов аутентификации (отпечаток, лицо)
- Fallback на PIN/пароль при необходимости
Ответ 18+ 🔞
А, биометрия на андроиде! Да, работал, конечно. Ну, в смысле, не то чтобы я там отпечатки пальцев вручную сканировал, а через этот их BiometricPrompt API всё делал. Ёпта, удобная штука, если честно, не надо пароли помнить.
Вот, смотри, как примерно выглядит этот цирк с конями в коде:
val biometricPrompt = BiometricPrompt(
activity,
ContextCompat.getMainExecutor(activity),
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
// Успешная аутентификация
}
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
// Ошибка аутентификации
}
}
)
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Вход")
.setSubtitle("Используйте отпечаток пальца")
.setNegativeButtonText("Отмена")
.build()
biometricPrompt.authenticate(promptInfo)
Выглядит-то просто, да? Но тут, блядь, подводных камней — овердохуища. Первое дело — ты не можешь просто так взять и запустить это на любом устройстве. Надо сначала проверить, а есть ли там вообще биометрический сканер, или это просто мартышлюшка какая-то. Для этого есть BiometricManager. Иначе пользователь будет пялиться на пустой экран и думать, что приложение накрылось медным тазом.
Второй момент — поддержка разных типов. Ну, отпечаток — это классика, но сейчас эти телефоны с распознаванием лица плодятся как тараканы. Надо, чтобы и то, и другое работало, если устройство позволяет. А то будет смешно: у человека топовый аппарат, а ты ему говоришь «используйте отпечаток», а у него его нет, только лицо. Пизда рулю и доверия ебать ноль.
И третий, самый важный пункт — всегда нужен запасной вариант. Fallback, блядь, на PIN или пароль. Потому что бывает всякое: сканер грязный, палец порезал, лицо опухло с похмелья. Человек должен иметь возможность зайти в приложение, а не остаться за бортом с мыслью «какого хуя я это вообще устанавливал». Так что да, без этого никак. В общем, штука полезная, но голову надо включать, когда её внедряешь.