以前,FingerprintManager可以用于处理指纹身份验证,并且不依赖Activity来进行系统对话框。 它可以像任何传感器管理器一样在任何地方使用。
现在,Google已在https://developer.android.com/reference/androidx/biometrics/BiometricPrompt中发布了支持库版本 和不推荐使用的FingerprintManager。 他们希望所有应用都通过相同的统一系统对话框。
最大的问题是-整个过程与FragmentActivity紧密相关。
我希望在AccessibilityService中使用此指纹身份验证(在其他应用上显示)。
该怎么办?
我正在考虑的一些选择:
UPDATE
在下面接受通用软件的答案。 在获得可访问性事件时,我能够在应用程序之上成功启动“活动”,并开始使用BiometricPrompt。虽然BiometricPrompt还有其他问题,但似乎半生熟的API从未经历过压力测试-但这超出了此问题的范围。
答案 0 :(得分:1)
尽管已弃用,仍返回到旧的FingerprintManager
在较新的设备上可能无法正常工作。我怀疑它在生物识别安全性不是指纹的设备上也无法正常工作。
实施某种透明的Activity,它将以某种方式在其他应用程序上方弹出,只是为了满足API对FragmentActivity的要求。
如果我穿上你的鞋子,我会走这条路。为此使用Theme.Translucent.NoTitleBar
。
请注意,我不能保证它可以在AccessibilityService
上运行,并且显示任何形式的UI都会导致您需要过滤掉新的可访问性事件。