инициализировать BiometricPrompt в API 29

Я пытаюсь добавить аутентификацию fingerPrint в свое приложение с использованием BioMetricPrompt уровня API 29.

Я следую некоторому коду для этого, но большинство доступных кодов предназначены для API нижнего уровня. В API 29 класс BiometricPrompt претерпел большие изменения по сравнению с API нижнего уровня.

Мой основной вопрос - как инициализировать класс BiometricPrompt для проекта, где целевой API - это API 28 или 29.

Я пытаюсь сделать это с помощью FingerprintManagerCompat, но сейчас он устарел. Итак, пожалуйста, помогите мне создать экземпляр класса BiometricPrompt.


person realpranav    schedule 10.08.2019    source источник


Ответы (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)
person realpranav    schedule 11.08.2019