Android Q 之后,为三方应用提供BiometricPrompt 生物识别验证API。
但是发现,
以指纹为例
当BiometricDialogView弹出后,按下Menu/HOME键,指纹验证申请已经取消,但是弹框BiometricDialogView(FingerprintDialogView)无法消失。
见图:
问题在于,指纹是因Menu/HOME键引起Activity onPause而被Cancelled, 而FingerprintService/BiometricService并未通知到SystemUI进行hideBiometricDialog。
SystemUI是全局布局,不受3rd-app Activity生命周期影响,需要主动通知显隐。
【another solution】
此问题,除了Android Q中本地给出的解决方案,发现最新Android R aosp已经对BiometricPrompt框架进行过优化。
已经可以消失了。
见图