BiometricPrompt 和 AccessibilityService
BiometricPrompt and AccessibilityService
以前,FingerprintManager 可用于处理指纹身份验证,并且不依赖 Activity 来通过系统对话框。
它可以在任何地方使用,就像任何传感器管理器一样。
现在,Google已经在https://developer.android.com/reference/androidx/biometrics/BiometricPrompt发布了支持库版本
并弃用了 FingerprintManager。
他们希望所有应用程序都通过相同的统一系统对话框。
最大的问题是——整个事情都与 Fragment 紧密耦合Activity。
我希望在 AccessibilityService 中使用此指纹验证(显示在其他应用程序之上)。
可以做什么?
我正在考虑的一些选项:
- 回到旧的 FingerprintManager 尽管已被弃用。
- 实现一些透明的 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 都会导致您需要过滤掉的新辅助功能事件。
以前,FingerprintManager 可用于处理指纹身份验证,并且不依赖 Activity 来通过系统对话框。 它可以在任何地方使用,就像任何传感器管理器一样。
现在,Google已经在https://developer.android.com/reference/androidx/biometrics/BiometricPrompt发布了支持库版本 并弃用了 FingerprintManager。 他们希望所有应用程序都通过相同的统一系统对话框。
最大的问题是——整个事情都与 Fragment 紧密耦合Activity。
我希望在 AccessibilityService 中使用此指纹验证(显示在其他应用程序之上)。
可以做什么?
我正在考虑的一些选项:
- 回到旧的 FingerprintManager 尽管已被弃用。
- 实现一些透明的 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 都会导致您需要过滤掉的新辅助功能事件。