티스토리 뷰
API 27 : setTurnScreenOn
[문제]
setTurnScreenOn을 onCreate에서 호출했지만 켜지지 않음
[해결 방법]
requestDismissKeyguard도 호출해줘야 함
[이유]
setTurnScreenOn(boolean)
developer.android.com/reference/android/app/Activity#setTurnScreenOn(boolean)
Activity가 resumed일 때, screen의 켜짐 여부를 결정한다. 일반적으로 activity 상태는 screen이 꺼져있는 동안 started에서 stopped으로 전환된다. 그러나 setTurnScreenOn을 설정하면 activity가 visible 및 resumed 되면서 screen이 켜지게 된다. screen은 activity가 visible 상태가 되기 전에는 켜질 수 없다.
이 flag는 일반적으로 R.attr.showWhenLocked flag와 함께 사용하며, 이는 screen이 켜지기 전에 잠금화면 위에서 activity가 visible되도록 보장한다. 더하여, flag가 설정되면 activity는 keyguardManager의 requestDismissKeyguard를 호출하여, screen이 켜지도록 한다.
requestDismissKeygaurd(Activity, Callable)
device의 현재상태가 locked이라면 keyguard가 dismissed 되기 위한 요청을 수행한다.
keyguard가 비보안이거나 device의 현 상태가 신뢰할 수 있다면, 이 method는 사용자와의 어떠한 상호작용 없이 keyguard를 dismiss한다.
만약 keyguard가 보안 적용되어 있거나 device의 현 상태가 신뢰할 수 없다면, 이 method 호출 시, 사용자의 신용을 확인할 수 있는 UI를 가져온다.
만약, R.attr.turnScreenOn이 true로 설정되어 있다면, keyguard가 dismiss 일 때, screen은 turn on 된다.
'android' 카테고리의 다른 글
[android] 부팅시 Receiver 디버깅 하는 방법 (0) | 2020.12.06 |
---|---|
[android] turn screen on / show when lock screen 에서의 double lifecycle (0) | 2020.11.05 |
[android] The style on this component requires your app theme to be Theme.MaterialComponents 해결 방법 (+Material Design 사이트 ) (0) | 2020.09.02 |
[android] AlarmManager 등록 확인 방법 (0) | 2020.08.31 |
[android] data binding - 객체 식별 (0) | 2020.07.27 |