2

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

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

大问题是 - 整个事情都与 FragmentActivity 紧密耦合。

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

可以做什么?

我正在考虑的一些选项:

  1. 回到旧的 FingerprintManager 尽管已被弃用。
  2. 实现一些透明的 Activity,它会以某种方式弹出到其他应用程序之上,只是为了满足 API 对 FragmentActivity 的要求。

更新

下面接受了通用软件的答案。获取可访问性事件时,我能够在应用程序之上成功启动 Activity,并开始使用 BiometricPrompt。不过,BiometricPrompt 还有其他问题,它似乎是一个非常不成熟的 API,从未经过压力测试——但这超出了这个问题的范围。

4

1 回答 1

3

回到旧的 FingerprintManager 尽管已被弃用

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

实现一些透明的 Activity,它会以某种方式弹出到其他应用程序之上,只是为了满足 API 对 FragmentActivity 的要求。

如果我在你的鞋子里,我会走这条路。用于Theme.Translucent.NoTitleBar此。

请注意,我不能保证这将在 中起作用AccessibilityService,并且显示任何形式的 UI 都会导致您需要过滤掉新的可访问性事件。

于 2018-12-01T19:17:16.087 回答