본문 바로가기
Apple/iOS

[iOS] 화면 자동 꺼짐 방지 기능 구현하기

by 어멘드 2022. 7. 12.
반응형

 iOS 디바이스의 설정에서 디스플레이 및 밝기로 가면 자동 잠금이라는 항목이 있다.
 일정 시간 동안 입력이 없을 경우 화면이 어두워지다가 자동으로 화면이 잠기는 기능이다.
 자동 잠금이 시작되기까지의 시간은 30초 ~ 5분까지 설정할 수 있고, 아예 자동 잠금 기능을 끌 수도 있다.

 앱 내에 오랜 시간 보기만 하는 용도의 화면이 있다면, 화면 자동 꺼짐이 불편할 수 있다.
 예를 들어, 시계 앱 실제 탁상시계처럼 옆에 켜 두고 쓰고 싶은데, 자동 잠금 기능 때문에 30초마다 화면이 꺼지는 상황처럼 말이다.
 이 앱 하나 때문에 기기 전체의 자동 잠금 기능을 끌 수는 없는 노릇이다.

 이런 문제를 해결하기 위해 앱 내에 화면 자동 꺼짐 방지 기능을 구현해보자.


Idle Timer

 앱 내에서는 자동 잠금을 위한 유휴 시간을 체크하기 위해 Idle Timer가 돌아간다.
 따라서 이 Idle Timer를 비활성화 시키면, 자동 잠금 되는 것을 방지할 수 있다.

 

 Idle Timer의 비활성화 여부는 UIApplication 클래스의 인스턴스 프로퍼티로 정의되어 있다.

var isIdleTimerDisabled: Bool { get set }

 

 이 프로퍼티 값을 true로 설정해주면 Idle Timer가 비활성화된다.

UIApplication.shared.isIdleTimerDisabled = true

 

 공식 문서에서는 "이 속성은 필요한 경우에만 설정해야 하며 더 이상 필요하지 않은 경우 false로 재설정해야 합니다."라고 나와있다.
 또한 꼭 필요한 경우는 "사용자의 인터렉션이 최소일 때도 콘텐츠를 계속 표시해야 하는 지도, 게임 앱"이라고 제시하고 있다.
 꼭 필요한 경우에만 사용하라고 하는 이유는 전력 때문이다. 자동 잠금 자체가 전력 절약을 목적으로 하는 기능이다.


> 레퍼런스
https://developer.apple.com/documentation/uikit/uiapplication/1623070-isidletimerdisabled

 

 

반응형

댓글