2015-11-14 8 views
1

Из того, что я понимаю, UIApplication.sharedApplication(). ProtectedDataAvailable должен возвращать значение false, когда телефон заблокирован, и защищенные данные включены на iPhone (видимо, установка пароля позволяет это).protectedDataAvailable always true

Однако, несмотря на сценарий, он всегда возвращает true.

Как только мое приложение снова пробудилось iOS из-за сохранения и восстановления состояния Corebluetooth, мне нужно сразу узнать, заблокирован ли телефон.

Я реализовал прослушиватели событий, чтобы узнать, когда телефон заблокирован/разблокирован, но они полезны только после изменения состояния блокировки, я не могу определить состояние блокировки до события.

Любые идеи? Благодаря

UPDATE:

это то, что я использую в applicationDidFinishLaunchingWithOptions:

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

Вы должны показать некоторый код, чтобы люди могли помочь. Прежде всего, убедитесь, что вы достаточно долго ждали - есть 10-секундный льготный период после того, как экран заблокирован, прежде чем защищенные данные будут заблокированы. Это можно увидеть, просмотрев журнал консоли телефона в Xcode> Window> Devices. –

+0

Я только что обновил вопрос с некоторой информацией. Я не смог найти, где именно в журналах я должен искать событие состояния блокировки, но я немного подождал, прежде чем тестировать его, и вы правы, он работал, как ожидалось. Большое спасибо. Не возражаете ли вы объяснить немного дальше, когда эти события появляются в журнале? В списке устройств я выбираю свой телефон, затем просматриваю журналы устройств, что тогда? Спасибо –

ответ

0

Не под видом Логи устройства - это где вы собираетесь увидеть крах свалки.

В консоли 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 
+0

Совет Ewan Mellor о том, как долго я должен ждать, пока значение protectedDataAvailable не обновится, решила его для меня. Благодарю. –