前言
最近在做一個開發(fā),有一個地方同步音樂文件,有時間會出現(xiàn)屏幕熄滅狀態(tài),導致同步出現(xiàn)斷開,現(xiàn)在決定在同步時保持屏幕常亮,其實很多時候我們需要保持屏幕高亮,下面就來給大家介紹一個實現(xiàn)的方法,但是要記得在適當?shù)臅r候關閉常亮
示例代碼
1
2
3
4
5
6
7
8
9
|
//設置屏幕常亮 [UIApplication sharedApplication].idleTimerDisabled = YES; //取消設置屏幕常亮 [UIApplication sharedApplication].idleTimerDisabled = NO; //設置屏幕常亮 [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; //取消設置屏幕常亮 [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; |
但是有些控件的存在是不會鎖屏的,比如AVPlayer,播放的時候是不會鎖屏的,但是暫停或者停止播放之后系統(tǒng)會自動關閉常亮,正好與我們的設計沖突,所以我這里做了一個監(jiān)聽,如果屏幕鎖屏被關,立馬把它打開,最后要記得移除監(jiān)聽并且關閉鎖屏。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//監(jiān)聽鎖屏變化 [[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; } |
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://blog.duicode.com/2313.html