如果自上次输入密码超过60分钟,或者用户在锁定设备后进入应用程序,我的应用程序需要提示输入密码.
问题是知道设备何时被锁定.如果用户只是在应用程序之间切换,则应用程序不需要提示输入密码,除非自上次密码提示以来已经过了60分钟.如果他们锁定设备,即使它不到60分钟也会再次提示.
applicationWillResignActive这样的通知没有帮助,因为我无法确定应用程序是否因为设备被锁定或用户切换到另一个应用程序而退出活动状态.
在搜索中,我发现帖子说我可以注册以观察UIApplicationProtectedDataWillBecomeUnavailable通知.
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(protectedDataWillBecomeUnavailable:)
name:UIApplicationProtectedDataWillBecomeUnavailable object:nil];
Run Code Online (Sandbox Code Playgroud)
当我收到此通知时,我设置了一个标志,以便在下次应用程序变为活动状态时提示输入用户密码.但我的测试表明,除非设备设置了密码,否则不会发送此通知.
我已编写测试代码来观察所有通知,但我没有看到任何其他通知表明设备已被锁定.
还有其他方法可以知道设备何时被锁定?
ios ×1