BiometricPrompt iris and face prompt is not working with Crypto object authentication. #AndroidX

让人想犯罪 __ 提交于 2019-12-21 19:52:02

问题


Issue

  • Biometric authentication iris and face-detection is not prompting with biometricPrompt.authenticate(**crypto**, promptInfo) call.

Source reference:

  • Securing data with BiometricPrompt (19 May 2019)
  • One Biometric API Over all Android (30 October 2019)
  • Biometrich API

Device used for testing:

  • Samsung S8 (Android OS 9)

Steps of Authentication I'm following:

  • val biometricPrompt = BiometricPrompt(...)
  • val promptInfo = BiometricPrompt.PromptInfo.Builder()...
  • biometricPrompt.authenticate(promptInfo) (PFA: option A, B)

and there is another authentication method which take cipher object to make sure

  • biometricPrompt.authenticate(crypto, promptInfo). (PFA: option C)

Everything worked just as expected with new and older API device support. Until unless realize tested application for other biometric authentication option iris and using face detection.

If I follow

  • biometricPrompt.authenticate(promptInfo) then application simply display authentication option based on user preference which he has to choose from Device Setting -> Biometric preference. And perform authentication independently. (PFA: option A, B)

  • But if use biometricPrompt.**authenticate**(crypto, promptInfo) then it displays only fingerprint authentication option ONLY. For other preference option iris and face-detection, it does not display anything on authenticate(..) method call. (PFA: option C)

Question

  • Why other Biometric authentication is not prompting with crypto object authentication.


回答1:


Some devices only have one form factor, some have many form factors. Which form factor your app ends up using isn't really up to you; it's up to the OEM implementation. As explained in this blog post, whether a form factor is Strong or Weak doesn't depend on your code -- the OEM decides. However, you can request that a device uses Strong authentication for your app by specifying a CryptoObject when you call authenticate().

What you are experiencing is that the OEMs of your devices decided to make Fingerprint the default for Strong biometrics. Therefore, when you pass in a CryptoObject to authenticate() those devices show the user the UI for Fingerprint.



来源:https://stackoverflow.com/questions/59090310/biometricprompt-iris-and-face-prompt-is-not-working-with-crypto-object-authentic

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!