自动锁定 iPhone/iPad 的编程实现方式

3

有没有一种方法可以在应用程序运行时“强制”用户自动锁定(并可能设定密码锁),以提高安全性?如果我们无法程序化设置它们,那么我们至少可以检查它们是否被设置吗?

谢谢, Mihai


类似于:https://dev59.com/QkjSa4cB1Zd3GeqPChgk..如果用户在设置中禁用了它,我不确定是否要打开它,我从未尝试过这种方式。 - iwasrobbed
那篇文章以及其他我找到的文章都不太有用。大多数都是关于禁用自动锁定,即使只是暂时禁用,而我需要启用它。 - Mihai Fonoage
启用/禁用的区别在于“NO”和“Yes”的选择,例如:[[UIApplication sharedApplication] setIdleTimerDisabled: NO]; 或者 [[UIApplication sharedApplication] setIdleTimerDisabled: YES]; 但是,就像我之前所说的,我还没有测试过这是否会覆盖用户在“设置”应用中设置的选项。 - iwasrobbed
1
我在我的iPad上进行了测试。我在didFinishLaunchingWithOptions中使用了“NSLog(@”idleTimerDisabled:%@“,[UIApplication sharedApplication] .idleTimerDisabled?@”YES“:@”NO“);”,并从设置菜单中更改了自动锁定选项为“永不”然后是“2分钟”,但返回的值始终为NO,这正是我想要的,但它并不反映设备本身的自动锁定实际设置。 - Mihai Fonoage
2个回答

0
if ([UIApplication sharedApplication].idleTimerDisabled == YES) {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Please enable auto-lock"...];
    [alert show];
    [alert release];
} else {
    /* some code */
}

以上代码片段将检查空闲计时器是否已禁用。如果是,它将通过UIAlertView告诉用户启用它。

无论iPad的自动锁定是否开启,idleTimerDisabled始终为NO。 - Mihai Fonoage
真的吗?我还没有看到任何相关的信息。你难道不认为苹果会记录这个吗? - esqew
1
我在我的iPad上测试了它。我在didFinishLaunchingWithOptions中使用了“NSLog(@'idleTimerDisabled: %@", [UIApplication sharedApplication].idleTimerDisabled?@'YES':@'NO')”,并从设置菜单中更改了自动锁定选项为“永不”然后再改为“2分钟”。 - Mihai Fonoage
Mihai是正确的,idleTimerDisabled与用户设置自动锁定无关。您将永远得到这个结果:(lldb) p (int)[[UIApplication sharedApplication] isIdleTimerDisabled] (int) $0 = 0 - Philip007

0
您可以使用一个会话处理类,该类继承自UIApplication并修复一个定时器。这非常简单且完全可自定义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接