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

xml*_*lmx 8 api android locking lockscreen keyguard

以下摘自http://developer.android.com/reference/android/app/KeyguardManager.html

public boolean isDeviceLocked()

返回设备当前是否已锁定并需要PIN,模式或密码才能解锁.如果解锁设备当前需要PIN,模式或密码,则返回true.

public boolean isKeyguardSecure()

返回键盘锁是否需要密码才能解锁.如果keyguard是安全的,则返回true.

isDeviceLocked和之间有什么区别isKeyguardSecure

Mar*_*lts 12

public boolean isDeviceLocked()

此方法将锁定屏幕的当前UI状态考虑在内.

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

  • 用户已解锁锁屏并正在使用该设备
  • 智能锁定功能(设置 - >安全 - >智能锁定)允许在不进一步验证的情况下解锁设备

public boolean isKeyguardSecure()

此方法不会考虑锁屏的当前UI状态.

因此,如果设置了安全屏幕锁定,它将始终返回true,无论用户是否已解锁锁屏,或者智能锁允许解锁而无需进一步验证.

我无法重现ByteHamster btw报告的行为.

  • 将KeyguardManager.isDeviceLocked()与KeyguardManager.isKeyguardLocked()进行比较会更有趣。我还没有找到答案 (2认同)