본문 바로가기

IT/Tizen

[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

https://developer.tizen.org/dev-guide/2.4.0/org.tizen.native.mobile.apireference/group__CAPI__SYSTEM__DEVICE__POWER__MODULE.html

https://developer.tizen.org/dev-guide/2.4.0/org.tizen.native.mobile.apireference/group__CAPI__EFL__UTIL__MODULE.html