我正在实施 BiometricPrompt API 并在带有 OS 10 的三星 Galaxy S10e 上遇到不良行为。
BiometricPrompt 对话框显示在黑屏上,而不是在后台显示我的登录页面。如果我点击设备上的概览(方形)按钮,我可以简要地看到它存在于自己的窗口中,而在我在 Pixel 设备上的测试中,对话框与我的应用程序存在于同一个窗口中。我观察到此 API 的 1.0.0 版和 1.1.0 版都存在问题。
片段 onCreate():
biometricPrompt = new BiometricPrompt(
this,
ContextCompat.getMainExecutor(requireContext()),
createBiometricAuthenticationCallback()
);
点击():
biometricPrompt.authenticate(new BiometricPrompt.PromptInfo.Builder()
.setTitle([...])
.setSubtitle([...])
.setDescription([...])
.setAllowedAuthenticators(BIOMETRIC_WEAK | DEVICE_CREDENTIAL)
.build());
我尝试使用 FragmentActivity 而不是 Fragment 来初始化它,这不会影响它。如果我启动使用 KeyguardManager 而不是使用 BiometricPrompt 创建的意图,它会正常工作,但这已被弃用,因此似乎不是一个理想的长期解决方案。