android - 生物识别提示和辅助服务

标签 android accessibilityservice android-fingerprint-api accessibility accessibility-api

以前,FingerprintManager 可用于处理指纹身份验证,并且不依赖于 Activity 来完成系统对话框。 它可以在任何地方使用,就像任何传感器管理器一样。

现在,Google已经发布了支持库版本https://developer.android.com/reference/androidx/biometrics/BiometricPrompt 并弃用了 FingerprintManager。 他们希望所有应用程序都通过相同的统一系统对话框。

大问题是 - 整个事情与 FragmentActivity 强耦合。

我希望在 AccessibilityService 中使用此指纹身份验证(在其他应用程序上显示)。

可以做什么?

我正在考虑的一些选择:

  1. 尽管已弃用,但还是回到旧的 FingerprintManager。
  2. 实现一些透明的 Activity,以某种方式在其他应用上方弹出,以满足 API 对 FragmentActivity 的要求。

更新

接受了下面commonsware的回答。 当获取辅助功能事件时,我能够在应用程序顶部成功启动 Activity ,并开始使用 BiometricPrompt。不过,BiometricPrompt 还有其他问题,而且它似乎是一个非常不成熟的 API,从未经过压力测试 - 但这超出了这个问题的范围。

最佳答案

Go back to the old FingerprintManager despite becoming deprecated

这可能不适用于较新的设备。我怀疑它在生物识别安全不是指纹的设备上也无法正常工作。

Implement some transparent Activity that will somehow pop up above other apps, just to satisfy the API's requirement for FragmentActivity.

如果我是你,我会走这条路。为此,请使用 Theme.Translucent.NoTitleBar

请注意,我不能保证这将在 AccessibilityService 中正常工作,并且显示任何形式的 UI 都会导致您需要过滤掉新的辅助功能事件。

关于android - 生物识别提示和辅助服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574218/

相关文章:

android - 无法解决 : com. google.firebase :firebase-core:9. 0.0

android - 在 softKey "HOME"按钮按下时停止 Android 辅助功能 UI 组件

android - 如何以编程方式启动和停止 AccessibilityService?

android - 将自定义布局添加到生物识别提示

Android 尝试验证主机,尽管 android :autoVerify ="false"

安卓 : Alignment bug in making/showing 9patch image

android - 使用Android的面部识别来验证多个用户

android - 华为P9 lite指纹支持

java - 添加计时器并设置大小到 viewpager

android - 以编程方式单击通知操作按钮