android - 无法对服务中附加的覆盖窗口使用指纹身份验证
问题描述
我的应用程序中有显示覆盖屏幕的功能,我想在该视图中添加指纹,我尝试添加但低于错误,
/system_process W/FingerprintService: Rejecting com.package.myapp ; not in foreground
01576-1576/system_process V/FingerprintService: authenticate(): reject com.package.myapp
但是,如果我将它集成到活动中,它就可以正常工作。
如何在服务的叠加层上添加指纹身份验证?
请为此提供解决方案
解决方案
如果您查看 FingerPrintService 的源代码,您会看到,当您调用FingerprintManager#authenticate时,它会调用 #canUseFingerprint,这要求您在前台 Activity 中运行它。因此,使用 FingerprintManager 将需要让您的覆盖屏幕获取启动覆盖的 Activity 引用,或者启动运行指纹传感器的 Activity。
另请注意, FingerprintManager 已被弃用并被BiometricPrompt取代。这是一篇很有帮助的Medium文章,它将引导您完成 BiometricPrompt 的实现。但是,请注意,它也需要一个 Activity 上下文来确定 Activity 何时进入后台,然后生物识别提示会自动消失。
推荐阅读
- java - ResourceManager:无法在任何资源加载器中找到资源“index.vm”
- bash - 如何删除 df 命令中的标头?
- javascript - 如何将接口导出到全局命名空间 - 角度
- image - 将图像转换为具有正确尺寸的 Numpy 数组
- c# - Blazor 服务器端,剃刀页面:对象引用未设置为对象的实例
- powershell - 如何通过powershell脚本将存储在以字节为单位的变量中的输出值动态转换为KB MB GB
- javascript - 使用单个按钮/复选框显示/隐藏多个 div
- javascript - 为什么可选链在我的 Node REPL 中不起作用?
- mysql - 计算总记录并插入另一个表字段
- java - 通过apt安装的Java上的Opencv在NetBeans上显示错误