Разблокировать лицо, используя Confirm Credentials api
Я использую подтверждение учетных данных api в своем приложении для аутентификации пользователя, используя createConfirmDeviceCredentialIntent api.
Api работает нормально, когда я установил блокировку своего устройства как pin/pattern/password или fingerprint. Но он не работает в случае разблокировки лица. Я установил разблокировку лица на своем устройстве, и он отлично работает при открытии устройства. Но когда я запускаю намерение с использованием вышеупомянутого api, он не распознает разблокировку лица, а все другие вещи.
Является ли это ограничением этого api? или я должен сделать что-то дополнительное, чтобы достичь этого?
Невозможно найти это в любом месте, поэтому разместите здесь.
Ответы
Ответ 1
К сожалению, это невозможно, поскольку разблокировка с помощью лица является частью набора инструментов для разблокировки Smart Lock.
Другие способы разблокировки, которые подпадают под категорию Smart Lock, включают в себя:
- Обнаружение на теле
- Надежные места
- Доверенные устройства
- Доверенное лицо (рассматриваемый метод)
- Доверенный голос
Поскольку ни один из этих методов не является примитивным средством защиты в Android, нет смысла разрешать доступ к ним с помощью API.
Если бы Smart Lock мог использоваться с Keyguard, обнаружение на теле теоретически могло бы предоставить доступ к приложению, находясь в надежном месте (но не в руках доверенного лица), и даже надежный голос мог бы использоваться.
Apple и Face ID могут разрешить это, потому что Face ID является примитивным методом безопасности для iPhone X, поскольку данные, используемые для разблокировки устройства, хранятся в Secure Enclave, так же, как данные Touch ID.
Надеюсь, это даст вам достаточную причину того, почему это невозможно, и почему имеет смысл, что это невозможно.
Источники:
Keyguard (с указанием методов разблокировки, которые можно использовать), Smart Lock, Face ID
Ответ 2
BiometricPrompt представлен в API 28. Он будет поддерживать аутентификацию по отпечаткам пальцев, радужной оболочке и лицу.
Вот пример того, как разработчик может использовать его в своем приложении
![enter image description here]()
java.lang.Object
↳ android.hardware.biometrics.BiometricPrompt
![enter image description here]()
Используя конструктор BiometricPrompt, мы можем:
setTitle() - установить заголовок для отображения (обязательно)
setSubtitle() - установить отображение субтитров (необязательно)
setDescription() — Set the description to display(Optional)
setNegativeButton() - установить текст для отрицательной кнопки (обязательно).
Вы также должны предоставить экземпляр Executor и прослушиватель щелчков для отрицательной кнопки.
Примечание. Нельзя настроить значок или сообщение об ошибке, которые используются в диалоговом окне.
implementation 'androidx.biometric:biometric:1.0.0-beta01'
Последний выпуск
Исходный код GitHub доступен здесь NativeBiometricScanner, разработанный в Котлине