protectedDataAvailable 始终为真

protectedDataAvailable always true

据我了解,UIApplication.sharedApplication().protectedDataAvailable 应该 return false 当 phone 被锁定并且在 iPhone 上启用了受保护的数据(显然设置密码启用它)。

然而,尽管有这种情况,它总是 return 正确。

一旦我的应用程序由于 Corebluetooth 状态保存和恢复而被 iOS 重新唤醒,我需要立即知道 phone 是否被锁定。

我实现了事件侦听器以了解 phone 何时获得 locked/unlocked,但它们仅在锁定状态更改后才有用,我无法在事件发生之前确定锁定状态.

有什么想法吗?谢谢

更新:

这是我在 applicationDidFinishLaunchingWithOptions 中使用的:

self.phoneLockDetection.isPhoneLocked = !UIApplication.sharedApplication().protectedDataAvailable

不在“查看设备日志”下 -- 您将在此处查看故障转储。

在 Xcode > Window > 设备 > 你的设备上有一个设备控制台。它可能已折叠 -- 如果是,请单击右侧窗格左下角的三角形按钮。

我在控制台日志中看到以下内容:

Nov 14 12:07:30 Ewan-Mellors-iPad SpringBoard[54] <Warning>: [MPUSystemMediaControls] Disabling lock screen media controls updates for screen turning off.
Nov 14 12:07:30 Ewan-Mellors-iPad UserEventAgent[775] <Error>:  LockStateNotifier aksNotificationCallback posting notification: com.apple.mobile.keybagd.lock_status
Nov 14 12:07:30 Ewan-Mellors-iPad UserEventAgent[775] <Notice>: (Note ) PIH: Lock status changed.
Nov 14 12:07:30 Ewan-Mellors-iPad MobileMail[192] <Warning>: Key bag transitioning from unlocked to locking

十秒后:

Nov 14 12:07:40 Ewan-Mellors-iPad kernel[0] <Notice>: AppleKeyStore:Sending lock change 1 for handle 0
Nov 14 12:07:40 Ewan-Mellors-iPad UserEventAgent[775] <Error>:  LockStateNotifier aksNotificationCallback posting notification: com.apple.mobile.keybagd.lock_status
Nov 14 12:07:40 Ewan-Mellors-iPad UserEventAgent[775] <Notice>: (Note ) PIH: Lock status changed.
Nov 14 12:07:40 Ewan-Mellors-iPad MobileMail[192] <Warning>: Key bag transitioning from locking to locked