Problème
biometricPrompt.authenticate(**crypto**, promptInfo)
.Référence source:
Appareil utilisé pour les tests:
Étapes d'authentification que je suis:
et il y a une autre méthode d'authentification qui prend un objet chiffré pour s'assurer
Tout fonctionnait comme prévu avec la prise en charge de périphériques API nouveaux et plus anciens. Jusqu'à ce que, à moins de réaliser l'application testée pour une autre option d'authentification biométrique iris et en utilisant détection de visage .
Si je suis
biometricPrompt. authenticate (promptInfo) puis l'application affiche simplement l'option d'authentification en fonction des préférences de l'utilisateur qu'il doit choisir dans Paramètres du périphérique -> Préférence biométrique. Et effectuez l'authentification indépendamment. (PFA: option A, B )
Mais si vous utilisez biometricPrompt.**authenticate**(crypto, promptInfo)
, il n'affiche que l'option d'authentification par empreinte digitale UNIQUEMENT. Pour les autres options de préférence iris et détection de visage, il n'affiche rien lors de l'appel de la méthode authenticate(..)
. (PFA: option [~ # ~] c [~ # ~] )
Question
Certains appareils n'ont qu'un seul facteur de forme, certains ont de nombreux facteurs de forme. Le facteur de forme que votre application finit par utiliser ne dépend pas vraiment de vous; c'est à la mise en œuvre OEM. Comme expliqué dans cet article de blog , si un facteur de forme est Fort ou Faible ne dépend pas de votre code - l'OEM décide. Cependant , vous pouvez demander qu'un appareil utilise une authentification forte pour votre application en spécifiant un CryptoObject
lorsque vous appelez authenticate()
.
Ce que vous vivez, c'est que les OEM de vos appareils ont décidé de faire de l'empreinte digitale la valeur par défaut pour la biométrie forte. Par conséquent, lorsque vous passez un CryptoObject
à authenticate()
, ces périphériques affichent à l'utilisateur l'interface utilisateur pour l'empreinte digitale.