تكرار السؤال: …
الإجابة المختصرة
باستخدام BiometricManager للتحقق من دعم الجهاز وجاهزيته، ثم إطلاق BiometricPrompt مع تحديد مستوى الأمان (Strong أو Weak).
الشرح
توفر BiometricPrompt واجهة نظام موحدة وآمنة للمصادقة عبر بصمة الإصبع أو بصمة الوجه. تضمن المكتبة التعامل مع أنواع التشفير المتقدمة عبر BiometricPrompt.CryptoObject لربط مفاتيح Android Keystore بالمصادقة الناجحة، بحيث لا يتم فك تشفير البيانات الحساسة إلا بعد تأكيد هوية المستخدم بيولوجيًا.
مثال بالكود
val biometricPrompt = BiometricPrompt(
activity,
executor,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
// نجحت المصادقة الحيوية
}
}
)
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("تسجيل الدخول بالبصمة")
.setNegativeButtonText("إلغاء")
.setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG)
.build()
biometricPrompt.authenticate(promptInfo)أخطاء شائعة
- افتراض نجاح المصادقة تلقائيًا دون فحص canAuthenticate() لاحتمال عدم تعيين المستخدم لبصمة في إعدادات الهاتف.