Инициализировать BiometricPrompt в API 29
Я пытаюсь добавить аутентификацию fingerPrint в своем приложении с использованием BioMetricPrompt уровня API 29.
Я придерживаюсь некоторого кода для этого, но большинство доступных кодов для API более низкого уровня. В API 29 класс BiometricPrompt сильно изменился по сравнению с API низкого уровня.
Мой основной вопрос - как инициализировать класс BiometricPrompt для проекта, в котором целевым API является API 28 или 29.
Я пытаюсь сделать это с помощью FingerprintManagerCompat, но это устарело. Итак, пожалуйста, помогите мне с созданием экземпляра класса BiometricPrompt.
1 ответ
После того, как я почти не получал отзывов и исследований почти 24 часа, я получаю решение своих проблем после исследований на разных ресурсах.
Так, androidx.core.hardware.fingerprint.FingerprintManagerCompat
устарела во вновь доступных API 28 и 29, и вместо этого доступен другой класс, который androidx.biometric.BiometricPrompt
,
Этот новый BiometricPrompt более эффективен и помогает отображать стандартное диалоговое окно, чтобы провести пользователя через процесс аутентификации, выполнить аутентификацию и сообщить результаты в приложение. Класс BiometricPrompt имеет класс статического компоновщика PromptInfo
это может быть использовано для настройки и создания экземпляров BiometricPrompt.
Итак, решение для создания экземпляра BioMetricPrompt в соответствии с недавно доступным API:
val biometricPrompt = BiometricPrompt.PromptInfo.Builder()
.setTitle("Biometric Demo")
.setSubtitle("Authentication is required to continue")
.setDescription("This app uses biometric authentication to protect your data.")
.setNegativeButtonText("Cancel")
.build()
BiometricPrompt(this.activity!!, getMainExecutor(this.activity), getAuthenticationCallback()).authenticate(biometricPrompt)