3

私が理解していることから、UIApplication.sharedApplication().protectedDataAvailable は、電話がロックされていて iPhone で保護されたデータが有効になっている場合に false を返す必要があります (パスコードを設定すると有効になるようです)。

ただし、シナリオに関係なく、常に true を返します。

Corebluetooth State Preservation and Restoration によりアプリが iOS によって再起動されたら、電話がロックされているかどうかをすぐに知る必要があります。

電話がいつロック/ロック解除されるかを知るためにイベントリスナーを実装しましたが、ロック状態が変化した場合にのみ役立ちます.イベントの前にロック状態を判断することはできません.

何か案は?ありがとう

アップデート:

これは、applicationDidFinishLaunchingWithOptions で使用するものです。

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

1 に答える 1

0

[デバイス ログの表示] の下ではなく、そこにクラッシュ ダンプが表示されます。

Xcode > Window > Devices > Your Device にデバイス コンソールがあります。折りたたまれている可能性があります。折りたたまれている場合は、右側のペインの左下にある三角形のボタンをクリックします。

コンソール ログに次のように表示されます。

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

そして10秒後:

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
于 2015-11-14T20:12:22.977 に答える