I am trying to use BiometricPrompt for app authentication. When the user launches the app, the biometric prompt is displayed, if the user wishes to use the PIN/Pattern/Password, they can do so by selecting the option to go to the pin prompt (as per the .setAllowedAuthenticators(BIOMETRIC_STRONG or DEVICE_CREDENTIAL) ).
When the user is on the PIN/Pattern/Password screen, there is no option to go back to the previous activity or even the recents and homescreen. The navigation buttons and gestures are also hidden.
How can I display a cancel button so that the user can navigate back or go to the home screen?
How to display a cancel button when user selects alternative screen unlock method in BiometricPrompt.promptinfo
134 Views Asked by AashishKSahu At
1
There are 1 best solutions below
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in KOTLIN
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- ussd reader in Recket Native module
- making android analyze with coverity sast tool
- Jooq - Insert does not update object with generated id
- Doesn't work TrafficStats.clearThreadStatsTag() in Kotlin
- Difference between map and function returning when in Kotlin
- Every Time i run the app it gives me an error related to gradle
- How Do I Create A Path In The pubspec.yaml File?
- Android jetpack compose webview, image selector not works
- Why doesn't CIOEngine have a dispatcher in kotlin script?
- preventing duplicate text
- onCompletion(mp: MediaPlayer?) is unintentionally called after USB storage is connected
- When using a Room database on an Android application, is it possible to pre-populate data
- Jetpack compose - how I can hookup LiveData property from ViewModel with TextField in activity?
- Failed to getEnergyData
Related Questions in ANDROID-BIOMETRIC
- Biometric Enable and disable check in android programatically
- Private/Public RSA 2048 key pair - How to verify RSA PKCS#1v1.5 SHA 256 with phpseclib
- When to use BIOMETRIC_STRONG (Class 3), BIOMETRIC_WEAK (Class 2) and DEVICE_CREDENTIAL?
- AndroidX Biometric API IRIS scan issue
- How to get registered FingerPrint count in android phone
- Android biometric verification - how to get a unique user id?
- Encrypt and decrypt a Room database using AndroidX biometric library
- Android biometrics login add additional non controlable text
- How to check if the biometric authentication dialog is displayed?
- Integrating Blockchain Technology with Android Biometric Authentication
- How to determine available biometric authentication types in Dart and Flutter?
- How to display a cancel button when user selects alternative screen unlock method in BiometricPrompt.promptinfo
- How to check if device has fingerprint hardware/sensor and fingerprint is enabled or not in android using BiometricManager
- Biometric Authentication in jetpack compose
- Biometric Prompt from background?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In the case of using BiometricPrompt for app authentication, the behavior you described, where the navigation buttons and gestures are hidden, is expected and intended for security reasons. It is designed to prevent users from easily navigating away from the authentication process, ensuring the security of the app.
By design, there is no built-in option to display a cancel button or allow the user to navigate back or go to the home screen during the biometric or device credential authentication flow. This limitation helps maintain the integrity and security of the authentication process.
If you want to provide the user with an option to cancel or navigate away from the authentication flow, you'll need to implement your own custom UI for authentication instead of using BiometricPrompt. This custom UI could include a cancel button or other navigation options.
However, it's important to consider the security implications of allowing users to easily navigate away from the authentication process. Providing such an option may compromise the security of your app, as it could allow unauthorized access or make it easier for attackers to bypass the authentication mechanism.
Ultimately, it's recommended to follow the standard behavior provided by BiometricPrompt and prioritize the security of your app's authentication process.
update
Track the number of authentication attempts: Create a variable to keep track of the number of authentication attempts. You can store this value in a shared preference or any other suitable storage mechanism.
Increment the attempts counter: Whenever an authentication attempt fails, increment the attempts counter. You can do this in the error callback of the BiometricPrompt.
Check the attempts threshold: After each authentication attempt, compare the attempts counter to your desired threshold value. If the counter exceeds the threshold, you can proceed with closing the app.
Closing the app: To close the app programmatically, you can call the finish() method on your activity or use the finishAffinity() method to close all activities associated with your app.
Here's an example implementation in Kotlin:
Remember to call the
incrementAttempts()function whenever an authentication attempt fails, and then callcheckAttemptsThreshold()to check if the threshold has been reached. If the threshold is exceeded, you can callcloseApp()to close the app.Note: Keep in mind that forcefully closing the app may not be the best user experience. It's important to handle authentication failures gracefully and provide appropriate feedback to the user before closing the app.