我现在有一个非常简单的应用程序其唯一作用是晃动iPhone。 但是最终由于iPhone屏幕变暗,并自动锁定没有得到任何触摸事件。 我在想,如果有一种方法动摇时,复位自动锁定超时?
我知道,禁用自动锁完全我这样做:
[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]
但我真的不希望完全禁用它; 如果合法不使用iPhone它应该自动锁定预期。
谢谢你的帮助。
我现在有一个非常简单的应用程序其唯一作用是晃动iPhone。 但是最终由于iPhone屏幕变暗,并自动锁定没有得到任何触摸事件。 我在想,如果有一种方法动摇时,复位自动锁定超时?
我知道,禁用自动锁完全我这样做:
[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]
但我真的不希望完全禁用它; 如果合法不使用iPhone它应该自动锁定预期。
谢谢你的帮助。
你可以切换的值[UIApplication sharedApplication].idleTimerDisabled
根据自己的NSTimer的价值或行为手势(摇晃手机)。 它可以被设置为YES
/ NO
在应用程序中多次。
以下是我在我的应用程序使用的代码。 一点背景:我的应用程序有一个内置的网络服务器,以便用户可以从一个浏览器通过WIFI访问数据和每一个请求到达服务器时,我延长锁定定时器(最少在这种情况下2分钟;重新启用),你仍然可以一次添加上默认时间。
// disable idle timer for a fixed amount of time.
- (void) extendIdleTimerTimeout
{
// cancel previous scheduled messages to turn idle timer back on
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(reenableIdleTimer)
object:nil];
// disable idle timer
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
// re-enable the timer on after specified delay.
[self performSelector:@selector(reenableIdleTimer) withObject:nil afterDelay: 60 * 2];
}
- (void) reenableIdleTimer
{
sharedApplication].idleTimerDisabled );
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(reenableIdleTimer)
object:nil];
// disable idle timer
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}