web-dev-qa-db-ja.com

BiometricPrompt iris and face Promptは、Cryptoオブジェクト認証では機能しません。 #AndroidX

問題

  • バイオメトリクス認証の虹彩と顔の検出で、biometricPrompt.authenticate(**crypto**, promptInfo)呼び出しが要求されません。

ソース参照:

テストに使用されるデバイス:

  • サムスンS8(Android OS 9)

私がフォローしている認証の手順:

  • val biometricPrompt = BiometricPrompt(...)
  • val promptInfo = BiometricPrompt.PromptInfo.Builder()...
  • biometricPrompt。authenticate(promptInfo)(PFA:オプションA、B

そして、確認のために暗号オブジェクトを取る別の認証方法があります

新旧のAPIデバイスのサポートにより、すべてが期待どおりに機能しました。他の生体認証オプションirisのテスト済みアプリケーションを実現し、顔検出を使用しない限り)。

私がフォローした場合

  • biometricPrompt。authenticate(promptInfo)アプリケーションは、ユーザーがデバイス設定->生体認証設定から選択する必要があるユーザー設定に基づいて認証オプションを表示するだけです。そして、独立して認証を実行します。 (PFA:オプションA、B

  • ただし、biometricPrompt.**authenticate**(crypto, promptInfo)を使用すると、指紋認証オプションのみが表示されます。その他の設定オプションのアイリスと顔検出の場合、authenticate(..)メソッド呼び出しには何も表示されません。 (PFA:オプション[〜#〜] c [〜#〜]

質問

  • 他の生体認証が暗号オブジェクト認証を要求しないのはなぜですか?.

enter image description here

6
CoDe

一部のデバイスにはフォームファクタが1つしかないものもあれば、多くのフォームファクタを持つものもあります。アプリがどのフォームファクターを使用するかは、実際にはあなた次第ではありません。 OEMの実装次第です。 このブログの投稿 で説明されているように、フォームファクターがStrongWeakはコードに依存しません-OEMが決定します。 ただし、デバイスがアプリにStrong認証を使用することをリクエストできますauthenticate()を呼び出すときにCryptoObjectを指定する。

あなたが経験しているのは、デバイスのOEMが指紋を強力な生体認証のデフォルトにすることを決定したということです。したがって、CryptoObjectauthenticate()に渡すと、これらのデバイスはユーザーに指紋のUIを表示します。

1
Isai Damier