具有DayNight主题的生物识别提示

时间:2020-06-12 14:10:51

标签: android android-biometric-prompt theme-daynight

DayNight主题有四种情况:

  1. 设备- DARK 模式,应用程序- DARK 模式
  2. 设备- LIGHT 模式,应用程序- LIGHT 模式
  3. 设备-模式,应用程序- LIGHT 模式
  4. 设备- LIGHT 模式,应用程序- DARK 模式

第一和第二种情况是正常的。不幸的是,第三和第四种情况与预期不符。 BiometricPrompt对话框,获取设备的ui模式。我想为BiometricPrompt对话框应用应用程序UI模式。您可以在下面看到问题:

设备-模式,应用程序- LIGHT 模式 Device - **DARK** mode, application - **LIGHT** mode

设备- LIGHT 模式,应用程序- DARK 模式 Device - **LIGHT** mode, application - **DARK** mode

1 个答案:

答案 0 :(得分:0)

有趣的问题!

从您的问题中可以很明显地看出,设备和应用程序角色在所有4种情况下都是可以切换的(但只有在颜色不同的情况下才明显)

一些需要检查的资源,这些构成了我的答案的基础: https://developer.android.com/guide/topics/ui/look-and-feel/darktheme

https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:biometric/biometric/src/main/java/androidx/biometric/

一些背景:

  1. 认证布局由软编码的颜色(主题归为主题)构建而成,可以使夜间主题发挥作用(如您的图片所示)

  2. 未将布局设置为继承夜主题(活动的工作)

  3. 用于显示身份验证对话框的方法使用片段(非活动),这可能会导致其在uiMode下无法正常工作的原因)。必须在清单中设置一个活动以支持uiMode。不确定如何处理片段

  4. uiMode配置更改自动重建活动

我的答案:

由于用户身份验证的优先级高,因此将身份验证对话框的优先级高于活动的“设备”,而将对话框后面的活动委派给“应用程序”角色。目前尚不清楚为什么或如何发生。我将在DayNight主题的整个实现过程中尝试切换设备和应用程序的角色。