iOS 控制屏幕常亮

/ 0评 / 0

手机会自动锁屏,有些界面需要设置常亮,但是要记得在适当的时候关闭常亮

//设置屏幕常亮
[UIApplication sharedApplication].idleTimerDisabled = YES;
//取消设置屏幕常亮
[UIApplication sharedApplication].idleTimerDisabled = NO;

//设置屏幕常亮
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
//取消设置屏幕常亮
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];

但是有些控件的存在是不会锁屏的,比如AVPlayer,播放的时候是不会锁屏的,但是暂停或者停止播放之后系统会自动关闭常亮,正好与我们的设计冲突,所以我这里做了一个监听,如果屏幕锁屏被关,立马把它打开,最后要记得移除监听并且关闭锁屏。

//监听锁屏变化
[[UIApplication sharedApplication] addObserver:self forKeyPath:@"idleTimerDisabled" options:NSKeyValueObservingOptionNew context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    //    setToast(@"值改变操作");
    if (![UIApplication sharedApplication].idleTimerDisabled) {
	   [UIApplication sharedApplication].idleTimerDisabled = YES;
    }
}


- (void)dealloc{
    [[UIApplication sharedApplication] removeObserver:self forKeyPath:@"idleTimerDisabled"];
    [UIApplication sharedApplication].idleTimerDisabled = NO;
}

评论已关闭。