[Tizen] 타이젠 개발, 디바이스의 파워 컨트롤하기
안녕하세요, 타이젠 개발자 윤진입니다.
타이젠 앱개발과 관련하여 자주 접하는 질문들을 하나씩 포스팅하기로 마음 먹었었는데요,
(마음만 먹었습니다;)
근데 워낙 많은 질문이 들어와서...
내년이 되어도 모든 답변을 포스팅할 수 있을지 모르겠습니다.
일단 이번 포스팅에서는,
화면이 꺼지면 안되는 앱이 필수로 사용하는 전원 API를 살펴보도록 하겠습니다.
전원 관련 API는 총 4개가 있습니다.
여기서 CPU와 Display의 전원은 request & release 함수를 이용하여 제어하지요.
하지만, 2.4부터는 보다 강력하면서 사용하기도 쉬운 API가 추가되었습니다.
그에 따라 request & release API는 deprecated 수순을 밟고 있습니다.
그 대신 efl_util에서 window screen mode를 설정할 수 있도록 API를 제공합니다.
함수 이름에 직접적으로 언급되어 있듯,
이 함수는 윈도우의 상태를 기준으로 파워를 제어하게 됩니다.
윈도우가 화면에 보이는 상태에서만 위의 함수로 지정한 상태로 진입하고,
화면에서 완전히 사라지면 n초 후 화면은 꺼지게 됩니다.
EFL_UTIL_SCREEN_MODE_DEFAULT는 시간이 경과하면 화면을 끄고,
EFL_UTIL_SCREEN_MODE_ALWAYS_ON은 화면이 켜져있는 상태를 유지합니다.
기존에는 앱의 라이프사이클인 pause / resume 콜백에서 device power 함수를 사용하여,
- 앱이 pause가 되면 상시 전원 on에서 사용시만 on으로 변경하고,
- 앱이 resume이 되면 상시 전원 on 상태로 유지하였었는데요,
이제는 윈도우의 상태에 따라,
- 윈도우가 사라지면(곧, 앱이 pause가 되면), ALWAYS_ON 상태가 자동으로 해제되어 화면이 꺼지도록 제어가 됩니다.
- 반대로 윈도우가 나타나면(곧, 앱이 resume이 되면), ALWAYS_ON이 다시 설정되게 됩니다.
그렇기에 앱의 라이프 사이클 대신 기능의 라이프 사이클에 맞춰 함수를 사용하면 됩니다.
간단하지요? :)
그럼 오늘도 좋은 하루 보내세요~
끝_
* References
https://developer.tizen.org/community/tip-tech/keeping-screen-awake-until-pressing-hold-button