Мне предлагается показать определенные элементы пользовательского интерфейса в зависимости от наличия биометрического оборудования. Для 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 также не является решением, так как я не знаю, когда отменить приглашение.
Есть ли способ обнаружить присутствие биометрического оборудования и регистрацию пользователей?