我有一个多任务应用程序,我正在使用所有应用程序委托事件进行后台处理,但是当设备锁定或空闲计时器到期时,没有任何委托事件被触发。所以我需要检查设备锁定状态。
有没有办法用SDK(非私有api解决方案)做到这一点?
答案 0 :(得分:0)
也许你可以看一下钥匙串中的一件物品:
kSecAttrAccessibleWhenUnlocked 只有在用户解锁设备时,才能访问钥匙串项中的数据。对于仅在应用程序位于前台时需要访问的项目,建议使用此选项。使用加密备份时,具有此属性的项目将迁移到新设备。 适用于iOS 4.0及更高版本。 在SecItem.h中声明。
答案 1 :(得分:0)
从讨论中听起来你可以使用applicationProtectedDataWillBecomeUnavailable:
在使用内容保护的设备上,受保护的文件以加密形式存储,仅在设备解锁时才可用。此通知可让您的应用程序知道设备即将被锁定,并且它当前正在访问的任何受保护文件很快就会无法使用。
如果您的应用程序当前正在访问受保护的文件,则可以使用此方法释放对该文件的任何引用。虽然在设备锁定时访问文件不是错误,但任何尝试都会失败。因此,如果您的应用程序依赖于该文件,您可能需要采取措施以避免在设备被锁定时使用该文件。
我认为无论您是否使用受保护的文件,都会调用此方法。我还没有测试过它。