检查设备是否锁定?

时间:2011-10-06 20:40:12

标签: iphone cocoa-touch

我有一个多任务应用程序,我正在使用所有应用程序委托事件进行后台处理,但是当设备锁定或空闲计时器到期时,没有任何委托事件被触发。所以我需要检查设备锁定状态。

有没有办法用SDK(非私有api解决方案)做到这一点?

2 个答案:

答案 0 :(得分:0)

也许你可以看一下钥匙串中的一件物品:

kSecAttrAccessibleWhenUnlocked 只有在用户解锁设备时,才能访问钥匙串项中的数据。对于仅在应用程序位于前台时需要访问的项目,建议使用此选项。使用加密备份时,具有此属性的项目将迁移到新设备。 适用于iOS 4.0及更高版本。 在SecItem.h中声明。

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

答案 1 :(得分:0)

从讨论中听起来你可以使用applicationProtectedDataWillBecomeUnavailable:

  

在使用内容保护的设备上,受保护的文件以加密形式存储,仅在设备解锁时才可用。此通知可让您的应用程序知道设备即将被锁定,并且它当前正在访问的任何受保护文件很快就会无法使用。

     

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

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