Bird
Raised Fist0
Android Kotlinmobile~5 mins

Biometric authentication in Android Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is biometric authentication in Android?
Biometric authentication uses a person's unique physical traits, like fingerprints or face, to verify their identity securely on Android devices.
Click to reveal answer
beginner
Which Android class helps implement biometric authentication?
The <code>BiometricPrompt</code> class provides a simple way to show a system dialog for fingerprint, face, or iris authentication.
Click to reveal answer
intermediate
What is the purpose of BiometricManager?
It checks if the device supports biometric authentication and if the user has enrolled any biometric credentials.
Click to reveal answer
intermediate
Why should biometric authentication be combined with fallback options?
Because not all users have biometric data enrolled or sensors available, fallback like PIN or password ensures everyone can access the app securely.
Click to reveal answer
beginner
Name two common biometric types supported on Android devices.
Fingerprint and face recognition are the two most common biometric types supported on Android devices.
Click to reveal answer
Which class do you use to show the biometric authentication dialog in Android?
AAuthenticationManager
BBiometricManager
CFingerprintManager
DBiometricPrompt
What does BiometricManager.canAuthenticate() do?
AChecks if biometric hardware is available and user has enrolled biometrics
BRequests biometric permission from the user
CStarts the biometric authentication process
DDeletes enrolled biometric data
Why is it important to provide a fallback authentication method?
ABecause biometric sensors can fail or be unavailable
BBecause biometric authentication is always slow
CBecause fallback is required by Android policy
DBecause fallback is more secure than biometrics
Which biometric types are commonly supported on Android devices?
AFace recognition and voice
BFingerprint and face recognition
CDNA and fingerprint
DVoice and retina scan
What is the first step before starting biometric authentication?
AShow the biometric prompt immediately
BRequest camera permission
CCheck if biometric hardware is available and biometrics are enrolled
DClear all biometric data
Explain how to implement biometric authentication in an Android app using Kotlin.
Think about the sequence from checking device capability to showing the prompt and handling results.
You got /5 concepts.
    Why is biometric authentication considered more user-friendly than passwords, and what are its limitations?
    Consider both benefits and practical challenges of biometrics.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using BiometricPrompt in an Android app?
      easy
      A. To access the device camera for scanning QR codes
      B. To create a custom login screen with username and password
      C. To show the system biometric authentication dialog to the user
      D. To manage network connections securely

      Solution

      1. Step 1: Understand the role of BiometricPrompt

        BiometricPrompt is a system API that shows a standard biometric authentication dialog to the user.
      2. Step 2: Identify its main use

        It is used specifically for biometric authentication like fingerprint or face recognition, not for login screens or camera access.
      3. Final Answer:

        To show the system biometric authentication dialog to the user -> Option C
      4. Quick Check:

        BiometricPrompt = system biometric dialog [OK]
      Hint: BiometricPrompt always shows system biometric dialog [OK]
      Common Mistakes:
      • Confusing biometric prompt with custom login UI
      • Thinking it manages network or camera
      • Assuming it handles password input
      2. Which of the following is the correct way to create a BiometricPrompt instance in Kotlin?
      easy
      A. val biometricPrompt = BiometricPrompt.create(this, executor, callback)
      B. val biometricPrompt = BiometricPrompt(this, executor, callback)
      C. val biometricPrompt = BiometricPrompt.newInstance(this, executor, callback)
      D. val biometricPrompt = BiometricPrompt.Builder(this).build()

      Solution

      1. Step 1: Recall BiometricPrompt constructor usage

        In Kotlin, BiometricPrompt is created by calling its constructor with context, executor, and callback.
      2. Step 2: Check each option

        Only val biometricPrompt = BiometricPrompt(this, executor, callback) uses the correct constructor syntax. Options A, C, and D use non-existent methods.
      3. Final Answer:

        val biometricPrompt = BiometricPrompt(this, executor, callback) -> Option B
      4. Quick Check:

        Constructor call = val biometricPrompt = BiometricPrompt(this, executor, callback) [OK]
      Hint: Use constructor directly, no create() or newInstance() methods [OK]
      Common Mistakes:
      • Using non-existent factory methods
      • Trying to use Builder pattern which BiometricPrompt doesn't have
      • Confusing with other Android APIs
      3. Given this Kotlin code snippet, what will be printed if the user successfully authenticates biometrically?
      val callback = object : BiometricPrompt.AuthenticationCallback() {
        override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
          println("Success")
        }
        override fun onAuthenticationFailed() {
          println("Failed")
        }
      }
      // Assume biometricPrompt is initialized and authenticate() is called with this callback
      medium
      A. Failed
      B. Error
      C. Nothing
      D. Success

      Solution

      1. Step 1: Understand callback methods

        The onAuthenticationSucceeded method runs when biometric authentication is successful.
      2. Step 2: Identify printed output on success

        Inside onAuthenticationSucceeded, it prints "Success". So on success, "Success" is printed.
      3. Final Answer:

        Success -> Option D
      4. Quick Check:

        Success callback prints "Success" [OK]
      Hint: Success callback prints "Success" exactly [OK]
      Common Mistakes:
      • Confusing onAuthenticationFailed with success
      • Assuming error prints on success
      • Thinking no output occurs
      4. What is wrong with this Kotlin code snippet for biometric authentication?
      val biometricPrompt = BiometricPrompt(this, executor, callback)
      biometricPrompt.authenticate(promptInfo)
      
      // callback object missing override for onAuthenticationError
      medium
      A. It will work but won't handle errors properly
      B. It will crash because onAuthenticationError is not overridden
      C. It will not compile due to missing method
      D. It will authenticate without any callback

      Solution

      1. Step 1: Check callback completeness

        Overriding onAuthenticationError is recommended but not mandatory; missing it won't crash or prevent compilation.
      2. Step 2: Understand effect of missing error override

        Without onAuthenticationError, errors won't be handled gracefully, but authentication still runs.
      3. Final Answer:

        It will work but won't handle errors properly -> Option A
      4. Quick Check:

        Missing error override = no error handling [OK]
      Hint: Missing error override causes no error handling, not crash [OK]
      Common Mistakes:
      • Assuming missing override causes crash
      • Thinking code won't compile
      • Believing authentication runs without callback
      5. You want to add biometric authentication to your app but only if the device supports it and the user has enrolled biometrics. Which Kotlin code snippet correctly checks these conditions before showing the prompt?
      val biometricManager = BiometricManager.from(this)
      val canAuthenticate = biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL)
      if (/* condition here */) {
        biometricPrompt.authenticate(promptInfo)
      }
      hard
      A. canAuthenticate == BiometricManager.BIOMETRIC_SUCCESS
      B. canAuthenticate != BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE
      C. canAuthenticate == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED
      D. canAuthenticate == BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE

      Solution

      1. Step 1: Understand canAuthenticate return values

        canAuthenticate returns BIOMETRIC_SUCCESS if biometrics are available and enrolled.
      2. Step 2: Choose correct condition to proceed

        Only when canAuthenticate == BIOMETRIC_SUCCESS should the app show the biometric prompt.
      3. Final Answer:

        canAuthenticate == BiometricManager.BIOMETRIC_SUCCESS -> Option A
      4. Quick Check:

        Check for BIOMETRIC_SUCCESS before authenticating [OK]
      Hint: Authenticate only if canAuthenticate equals BIOMETRIC_SUCCESS [OK]
      Common Mistakes:
      • Checking for error codes instead of success
      • Ignoring enrollment status
      • Using wrong constants for condition
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard