如我们所知,我们在KeyguardManager
中有一个api,用于通过设备锁对用户进行身份验证。 api是:confirmDeviceCredentialIntent。
这个api的文档说:
意图提示用户确认设备当前用户的凭据(密码,模式或密码)。调用者应使用startActivityForResult(Intent,int)启动此活动,并在用户成功完成挑战时检查RESULT_OK。
现在,我的问题是,我想在非活动上下文中调用此流。我在我的应用程序中使用kv存储,其内容将由我存储在android密钥库中的密钥加密。因此,当我想获得该商店的任何价值时,我首先需要对用户进行身份验证,以便在返回之前获取我的密钥并解密内容。
第二件事是,作为该kv商店的消费者,我不想知道商店的加密是如何完成的,因此我不应该自己调用确认凭证。我只想从商店获取我的价值,并且如果需要,它的商店(非ui组件)负责调用认证流程。
所以大多数情况下,我会使用全局应用程序上下文。并且此上下文不提供startActivityForResult
api。
我是否有其他方式可以从用户那里获得确认凭据操作的结果?
答案 0 :(得分:0)
我最终使用了虚拟活动。此活动本身是由应用程序上下文启动的,然后处理为结果调用confirmCredentials
的意图。