android的KeyguardManager中isDeviceLocked和isKeyguardSecure有什么区别?

问题描述:

下面是从http://developer.android.com/reference/android/app/KeyguardManager.htmlandroid的KeyguardManager中isDeviceLocked和isKeyguardSecure有什么区别?

公共布尔摘录isDeviceLocked()

返回该设备是否当前被锁定,需要输入PIN,图案或密码来解锁。如果解锁设备当前需要PIN,图案或密码,则返回true。

公共布尔isKeyguardSecure()

返回是否键盘锁需要密码来解锁。如果键盘安全,则返回true。

isDeviceLockedisKeyguardSecure有什么区别?

+2

那么,如果你有一个密码,这两个方法返回'true'。如果你有一个PIN或模式,只是'isDeviceLocked'返回'true',如果你没有锁定,则返回'false'。我猜'isKeyguardSecure'具有它的功能,因为PIN和模式可以更容易地绕过。 – ByteHamster

+1

为什么要将'isDeviceLocked()'与'isKeyguardSecure()'进行比较? 'isDeviceLocked()'的挂件是'isKeyguardLocked()',* keyguard api比较老,并且考虑到了SIM引脚。 – for3st

公共布尔isDeviceLocked()

该方法以锁屏的当前UI状态考虑在内。

所以,如果一个安全的屏幕锁定已设置,它会违背isKeyguardSecure()回报false如果:

  • 用户解锁了锁屏,并使用该设备
  • 智能锁特征(设置 - >安全 - >智能锁)允许装置不经进一步认证

公共布尔isKeyguardSecure(解锁)

此方法不考虑Lockscreen的当前UI状态。

因此,如果设置了安全的屏幕锁,无论Lockscreen是否被用户解锁,或者Smart Lock是否允许解锁而无需进一步身份验证,它总是会返回true

我无法重现由ByteHamster btw报道的行为。