【发布时间】:2017-08-18 15:49:51
【问题描述】:
我正在尝试开发一个具有一些安全选项的应用程序,对于其中一个选项,我需要能够知道设备是否被任何类型的密码(数字、模式等)锁定,所以我开始阅读 android文档并找到了两个 KeyguardManager 方法, isDeivceLocked() 和 isDeviceSecured() 但是我在描述中并没有看到太大的区别,那么两者之间到底有什么区别?提前致谢
【问题讨论】:
我正在尝试开发一个具有一些安全选项的应用程序,对于其中一个选项,我需要能够知道设备是否被任何类型的密码(数字、模式等)锁定,所以我开始阅读 android文档并找到了两个 KeyguardManager 方法, isDeivceLocked() 和 isDeviceSecured() 但是我在描述中并没有看到太大的区别,那么两者之间到底有什么区别?提前致谢
【问题讨论】:
official API states the difference,虽然它可能有点混乱。关键区别在于您是否想知道设备的一般配置,还是它的当前状态。
因此,如果设备当前被某种密码或识别机制锁定,isDeviceLocked() 返回 true,这是解锁和使用设备所必需的。如果设备当前处于打开状态且正在使用中,或者它只是不需要任何密码/标识即可打开它,它会返回 false。 (参考和更多细节可以找到here)
另一方面,如果设备已配置为使用任何类型的密码或识别机制,isDeviceSecure() 将返回 true - 即使当前不需要使用该设备。
如果您想知道什么情况可能导致isDeviceSecure 返回真,而isDeviceLocked 返回假:只要设备在使用中(在输入锁定密码之后),它就可能发生。另一种情况可能是设备配置了Smart Unlock(或受信任的设备),因此目前它不会要求输入密码或任何其他类型的标识来打开/解锁自己。
【讨论】: