Android’de Biometric Authentication

Pelşin KAPLAN
Finagotech
Published in
2 min readMay 26, 2022

Herkese selam. Bu yazıyla, Android’de biometric veri nasıl okunurmuş, onu bir öğrenmeye geldik.

Çok basit bir UI ile biometric veri isteyen bir dialog çıkartacağız. Çok basit UI dan kastım da sadece bir buton :D Bu butonla biometric veri istemek için kullanacağımız dialogu çıkarmayı tetikleyeceğim.

Haydi ufaktan başlayalım. Öncelikle biometic authentication için gerekli dependencymizi gradle dosyamıza ekleyelim.

implementation "androidx.biometric:biometric:1.2.0-alpha04"

Bir de Manifest dosyamızdan bir biometric veri izni alalım.

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

Malumunuz her cihaz biometric authenticationı desteklemiyor. Bu yüzden de öncelikle cihazın bu yetiye sahip olup olmadığı kontrolünü yapalım, sonra da yapabilecek donanıma sahip ise deyip biometric verisini alalım. isBiometricAvailable diye bir metot yazıyorum.

Bu metodda BiometricManager kütüphanesini kullanarak, canAuthenticaiton durumuna bakıyorum. Ya success dönecek, ya hardware e sahip değil diyecek, ya da işte ulaşamayacak sorun çıkacak falan fistan. O zaman success çıkarsa true dönüp biometric veri kontrolü yapabiliriz, diğer durumlarda da false dönüp sen orada bir dur diyebiliriz.

Şimdi de biometric doğrulamamızı yapalım hadi! Öncelikle executor nesnesi tanımlamamız gerekiyor. Executor, geriye dönen değerleri işlememizi sağlar. Ardından BiometricPrompt nesnesi tanımlayacağız. Bu da parmak izi ile kimlik doğrulama işlemi yapabileceğimiz API’dir. Önceden kullanılan FingerprintManager yerine gelmiş, tatlı mı tatlı bir API.

BiometricPromt nesnemizi oluştururken gerekli parametreleri giriyoruz: activity, executor ve AuthenticationCallback(). AuthenticationCallback, kimlik doğrulama işlemini sağlar.

Ardından bu biometricPrompt nesnemiz için override edilen üç metodumuz geliyor: Succeeded, Failed, Error. Adlarıdan ne olduğunun anlaşılması çok da zor olmasa gerek :D Ben şimdi bunaların içine bir Toast message bastırdım, siz login gibi bir işlemde kullanacaksanız true false döndürüp kullanıcıyı içeri alabilirsiniz.

Son olarak da göstereceğimiz dialogu set edip, biometricPrompt nesnemize veriyoruz ve kodumuzun son halini elde ediyoruz.

Sonra da isBiometicAvailable() metodunu çağırıp true false durumuna göre biometric authentication olaylarını yapacak şekilde bir if else içinde konumlandırıyorum. İşte olay tamamen bundan ibaretti. Vee sonuç…

Biometric authentication kodlarının olduğunu Github linkini de şuraya bırakıyorum ve bir sonraki yazıda buluşmak üzere sağlıcakla kalın diyorum.

--

--