2011-10-06 128 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:

在使用内容保护的设备,保护文件存储在加密的形式,只有当设备提供被解锁。此通知可让您的应用程序知道该设备即将被锁定,并且目前正在访问的任何受保护文件都将很快无法使用。

如果您的应用程序当前正在访问受保护的文件,则可以使用此方法释放对该文件的任何引用。虽然在设备被锁定时访问文件并不是错误,但任何尝试都将失败。因此,如果您的应用程序依赖于该文件,则可能需要采取措施避免在设备被锁定时使用该文件。

我认为无论您是否使用受保护的文件,这都会被调用。我还没有测试过它。