Мне предлагается показать определенные элементы пользовательского интерфейса в зависимости от наличия биометрического оборудования. Для Android 23-27 я использую FingerprintManager#isHardwareDetected()
и FingerprintManager#hasEnrolledFingerprints()
. Оба из них устарели в Android 28.
Я понимаю, что я могу получить эту информацию, используя BiometricPrompt#authenticate(...)
и получение либо BiometricPrompt#BIOMETRIC_ERROR_HW_NOT_PRESENT
или BiometricPrompt#BIOMETRIC_ERROR_NO_BIOMETRICS
в BiometricPrompt.AuthenticationCallback#onAuthenticationError(int errorCode,...)
метод. Но это приведет к тому, что BiometricPrompt
будет показан на поддерживающих устройствах, что нежелательно. Использование CancellationSignal
также не является решением, так как я не знаю, когда отменить приглашение.
Есть ли способ обнаружить присутствие биометрического оборудования и регистрацию пользователей?