Android Biometric API: Parmak İzi ve Yüz Tanıma Ekleme

Android 10 (API 29) ve üzeri, BiometricPrompt API'si ile parmak izi ve yüz tanıma işlemlerini standart bir şekilde yapabilir. Eski AndroidX Biometric kütüphanesi de uyumludur, ancak yeni projeler BiometricPrompt'u tercih etmelidir.

İlk olarak build.gradle'a bağımlılıkları ekle:

1dependencies {
2implementation "androidx.biometric:biometric:1.1.0"
3}

Manifest dosyasında gerekli izinleri tanımla:

1<uses-permission android:name="android.permission.USE_BIOMETRIC" />
2<uses-permission android:name="android.permission.USE_FINGERPRINT" />

Artık Activity'de BiometricPrompt'u kullanabilirsin:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1import androidx.biometric.BiometricPrompt
2import androidx.core.content.ContextCompat
3import java.util.concurrent.Executor
4
5class LoginActivity: AppCompatActivity() {
6override fun onCreate(savedInstanceState: Bundle?) {
7super.onCreate(savedInstanceState)
8setContentView(R.layout.activity_login)
9
10val executor = ContextCompat.getMainExecutor(this)
11val biometricPrompt = BiometricPrompt(this, executor,
12object: BiometricPrompt.AuthenticationCallback() {
13override fun onAuthenticationSucceeded(
14result: BiometricPrompt.AuthenticationResult
15) {
16super.onAuthenticationSucceeded(result)
17Toast.makeText(this@LoginActivity,
18"Doğrulama başarılı!", Toast.LENGTH_SHORT).show()
19// Giriş işlemini tamamla
20}
21
22override fun onAuthenticationError(
23errorCode: Int, errString: CharSequence
24) {
25super.onAuthenticationError(errorCode, errString)
26Toast.makeText(this@LoginActivity,
27"Hata: $errString", Toast.LENGTH_SHORT).show()
28}
29})
30
31val promptInfo = BiometricPrompt.PromptInfo.Builder().setTitle("Biyometrik Doğrulama").setSubtitle("Parmak izin veya yüzünü kullan").setNegativeButtonText("İptal").build()
32
33findViewById<Button>(R.id.loginButton).setOnClickListener {
34biometricPrompt.authenticate(promptInfo)
35}
36}
37}

Cihazın biyometrik özelliğini kontrol etmek için BiometricManager kullan:

1import androidx.biometric.BiometricManager
2import androidx.biometric.BiometricManager.Authenticators.*
3
4val biometricManager = BiometricManager.from(this)
5when (biometricManager.canAuthenticate(BIOMETRIC_STRONG)) {
6BiometricManager.BIOMETRIC_SUCCESS ->
7Log.d("Biometric", "Cihaz biyometrik doğrulamayı destekliyor")
8BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE ->
9Log.d("Biometric", "Cihazda biyometrik sensör yok")
10BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE ->
11Log.d("Biometric", "Sensör şu anda kullanılamıyor")
12}

Beklenen çıktı: Kullanıcı parmak izini veya yüzünü taradığında onAuthenticationSucceeded çağrılır ve "Doğrulama başarılı!" mesajı gösterilir.

Sık yapılan hata: BIOMETRIC_STRONG yerine BIOMETRIC_WEAK kullanmak. Güvenlik için STRONG tercih et; PIN/şifre yedek doğrulama olarak PromptInfo'ya eklenebilir. Ayrıca runtime'da USE_BIOMETRIC iznini kontrol etmeyi unutma.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz