2011-10-06 141 views
1

我有一個多任務應用程序,我使用所有的應用程序委託事件作爲後臺,但當設備鎖定或空閒計時器到期時,沒有任何委託事件被觸發。所以我需要檢查設備鎖定狀態。檢查設備是否被鎖定?

有沒有辦法與SDK(非私人api解決方案)做到這一點?

回答

0

也許你可以在鑰匙串中的項目後看:

kSecAttrAccessibleWhenUnlocked 的數據在鑰匙串項目,纔可以訪問,而設備由用戶解鎖。建議僅在應用程序處於前臺時才需要訪問的項目。使用加密備份時,具有此屬性的項目會遷移到新設備。 Available in iOS 4.0及更高。 在SecItem.h中聲明。

來源:http://developer.apple.com/library/ios/#documentation/Security/Reference/keychainservices/Reference/reference.html

0

從討論這聽起來像你可以使用applicationProtectedDataWillBecomeUnavailable:

在使用內容保護的設備,保護文件存儲在加密的形式,只有當設備提供被解鎖。此通知可讓您的應用程序知道該設備即將被鎖定,並且目前正在訪問的任何受保護文件都將很快無法使用。

如果您的應用程序當前正在訪問受保護的文件,則可以使用此方法釋放對該文件的任何引用。雖然在設備被鎖定時訪問文件並不是錯誤,但任何嘗試都將失敗。因此,如果您的應用程序依賴於該文件,則可能需要採取措施避免在設備被鎖定時使用該文件。

我認爲無論您是否使用受保護的文件,這都會被調用。我還沒有測試過它。

相關問題