java - Android 5.0(API 21)之前如何确认设备凭证?

标签 java android

我有一个需要用户确认设备凭证的用例,而KeyguardManager中的createConfirmDeviceCredentialIntent方法完美地满足了我的需求。然而,这个方法是从API 21开始添加的。(reference link)那么如何在Android 5.0之前实现相同的功能呢?我也想支持像 Android 4.X 这样的版本。

谢谢!

最佳答案

在 21 级之前,这在非 root 设备上肯定是不可能的,并且没有常规权限的替代方案。

如果可以要求额外的管理员权限,则可以通过实现 DeviceAdminReceiver.onPasswordSucceeded 来非常松散 地模拟凭据确认,并付出更多的努力。 .锁定屏幕,密码成功后执行所需的操作。这可能会变得相对复杂,因为并不总是收到操作(仅当状态发生变化时),需要保持上次成功,与接收者通信等。

作为旁注,请仔细检查用例和您的设计,在大多数情况下,当使用 createConfirmDeviceCredentialIntent 时,实际上不需要它,其他设计选择可能会消除对它的需要。

最好详细说明您要保护的内容。如果这是一个未经授权的人意外访问设备的场景,并且生成了一个永久 token ,比如说,从一些 oauth 服务,通过相同的服务登录流程重新授权或存储一些原始凭证的 hmac 可能是合理的然后连同 token 一起提示并重新验证凭据,而不是提示输入设备凭据。或者,如果这足以满足用例,您可以使用 google login授权访问您的应用程序/ token 并验证谷歌用户是否与存储的 token 相同。

关于java - Android 5.0(API 21)之前如何确认设备凭证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072876/

相关文章:

java - 如何强制HashMap使用identity(哈希码)?或建议解决方法

java - 如何使对话框在 Android fragment 的 onClick 监听器内工作?

java - 如何验证正则表达式中的可选子字符串

java - 程序运行时执行语句/代码

java - 从java中的另一个单词中查找特定单词

java - Spring Boot 响应式(Reactive)和 mongodb 'command insert requires authentication'

Android:订阅的促销代码?

java - 使用 Javascript 和 Java 验证图像上传

java - 如何修复非静态方法

android - 将相机预览旋转到Portrait Android OpenCV Camera和Xamarin