Aracılığıyla paylaş


Parmak İzi Kimlik Doğrulaması ile Çalışmaya Başlama

Başlamak için önce uygulamanın parmak izi kimlik doğrulamasını kullanabilmesi için Xamarin.Android projesinin nasıl yapılandırıldığını ele alalım:

  1. Parmak İzi API'lerinin gerektirdiği izinleri bildirmek için AndroidManifest.xml güncelleştirin.
  2. için bir başvuru FingerprintManageralın.
  3. Cihazın parmak izi tarama özelliğine sahip olup olmadığını denetleyin.

Uygulama Bildiriminde İzin İsteme

Bir Android uygulamasının bildirimde USE_FINGERPRINT izin istemesi gerekir. Aşağıdaki ekran görüntüsünde, Visual Studio'da uygulamaya bu iznin nasıl ekleneceği gösterilmektedir:

Enabling USE_FINGERPRINT in the Android Manifest screen

FingerprintManager Örneği Alma

Ardından, uygulamanın veya sınıfının bir örneğini FingerprintManagerFingerprintManagerCompat alması gerekir. Android'in eski sürümleriyle uyumlu olmak için, bir Android uygulaması Android Desteği v4 NuGet paketinde bulunan uyumluluk API'lerini kullanmalıdır. Aşağıdaki kod parçacığı, işletim sisteminden uygun nesnenin nasıl alınduğunu gösterir:

// Using the Android Support Library v4
FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);

// Using API level 23:
FingerprintManager fingerprintManager = context.GetSystemService(Context.FingerprintService) as FingerprintManager;

Önceki kod parçacığında, context herhangi bir Android Android.Content.Contextşeklindedir. Bu genellikle kimlik doğrulamasını gerçekleştiren Etkinlik'tir.

Uygunluk Denetimi

Bir uygulamanın parmak izi kimlik doğrulaması kullanmanın mümkün olduğundan emin olmak için birkaç denetim gerçekleştirmesi gerekir. Toplamda, uygulamanın uygunluk durumunu denetlemek için kullandığı beş koşul vardır:

API düzeyi 23 – Parmak İzi API'leri IÇIN API düzeyi 23 veya üzeri gerekir. sınıfı API FingerprintManagerCompat düzeyi denetimini sizin için sarmalar. Bu nedenle Android Destek Kitaplığı v4'ün kullanılması önerilir ve FingerprintManagerCompatbu, bu denetimlerden birini hesaba ekler.

Donanım – Uygulama ilk kez başlatıldığında parmak izi tarayıcısı olup olmadığını denetlemelidir:

FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
if (!fingerprintManager.IsHardwareDetected)
{
    // Code omitted
}

Cihaz Güvenlidir – Kullanıcının cihazı bir ekran kilidi ile güvenli hale getirmiş olması gerekir. Kullanıcı cihazın güvenliğini bir ekran kilidiyle sağlamadıysa ve uygulama için güvenlik önemliyse, kullanıcıya bir ekran kilidinin yapılandırılması gerektiği bildirilmelidir. Aşağıdaki kod parçacığında bu ön talebin nasıl denetlenecek olduğu gösterilmektedir:

KeyguardManager keyguardManager = (KeyguardManager) GetSystemService(KeyguardService);
if (!keyguardManager.IsKeyguardSecure)
{
}

Kayıtlı Parmak İzleri – Kullanıcının işletim sistemine kayıtlı en az bir parmak izi olmalıdır. Bu izin denetimi her kimlik doğrulama girişimi öncesinde gerçekleşmelidir:

FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
if (!fingerprintManager.HasEnrolledFingerprints)
{
    // Can't use fingerprint authentication - notify the user that they need to
    // enroll at least one fingerprint with the device.
}

İzinler – Uygulama, uygulamayı kullanmadan önce kullanıcıdan izin istemelidir. Android 5.0 ve daha düşük sürümlerde kullanıcı, uygulamayı yükleme koşulu olarak izni verir. Android 6.0, çalışma zamanında izinleri denetleen yeni bir izin modeli kullanıma sunulmuştur. Bu kod parçacığı, Android 6.0'da izinlerin nasıl denetleneceğini gösteren bir örnektir:

// The context is typically a reference to the current activity.
Android.Content.PM.Permission permissionResult = ContextCompat.CheckSelfPermission(context, Manifest.Permission.UseFingerprint);
if (permissionResult == Android.Content.PM.Permission.Granted)
{
    // Permission granted - go ahead and start the fingerprint scanner.
}
else
{
    // No permission. Go and ask for permissions and don't start the scanner. See
    // https://developer.android.com/training/permissions/requesting.html
}

Uygulama her kimlik doğrulama seçeneği sunduğunda bu koşulların tümünün denetlenmesi, kullanıcının en iyi kullanıcı deneyimini elde etmesini sağlar. Cihazlarında veya işletim sistemlerinde yapılan değişiklikler veya yükseltmeler parmak izi kimlik doğrulamasının kullanılabilirliğini etkileyebilir. Bu denetimlerden herhangi birinin sonuçlarını önbelleğe almayı seçerseniz yükseltme senaryolarını karşıladığınızdan emin olun.

Android 6.0'da izin isteme hakkında daha fazla bilgi için, Çalışma Zamanında İzin İsteme Android kılavuzuna bakın.