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:
1import androidx.biometric.BiometricPrompt2import androidx.core.content.ContextCompat3import java.util.concurrent.Executor45class LoginActivity: AppCompatActivity() {6override fun onCreate(savedInstanceState: Bundle?) {7super.onCreate(savedInstanceState)8setContentView(R.layout.activity_login)910val executor = ContextCompat.getMainExecutor(this)11val biometricPrompt = BiometricPrompt(this, executor,12object: BiometricPrompt.AuthenticationCallback() {13override fun onAuthenticationSucceeded(14result: BiometricPrompt.AuthenticationResult15) {16super.onAuthenticationSucceeded(result)17Toast.makeText(this@LoginActivity, 18"Doğrulama başarılı!", Toast.LENGTH_SHORT).show()19// Giriş işlemini tamamla20}2122override fun onAuthenticationError(23errorCode: Int, errString: CharSequence24) {25super.onAuthenticationError(errorCode, errString)26Toast.makeText(this@LoginActivity, 27"Hata: $errString", Toast.LENGTH_SHORT).show()28}29})3031val promptInfo = BiometricPrompt.PromptInfo.Builder().setTitle("Biyometrik Doğrulama").setSubtitle("Parmak izin veya yüzünü kullan").setNegativeButtonText("İptal").build()3233findViewById<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.BiometricManager2import androidx.biometric.BiometricManager.Authenticators.*34val 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.
0 yorum