반응형
=================================
=================================
=================================
출처: https://tjandroid.blogspot.kr/2011/10/lock-screen.html
Lock screen 확인
앱 실행 중 power 버튼을 눌러 화면이 꺼지고 다시 power 버튼을 눌러 화면이 켜지면 Lock screen 이 나타난다. 이 때 이미 앱은 onResume 함수가 불린 상태다.
Lock screen 에서 onResume 이 불리면 안되는 경우가 있다.
1. Lock screen 상태 인지 확인
Keyguard 서비스 객체를 얻고 inKeyguardRestrictedInputMode 함수의 결과값으로 확인한다.
- KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
- if (keyguardManager.inKeyguardRestrictedInputMode()) {
- // lock screen
- } else {
- // lock screen 이 아님
- }
2. Lock screen 이 풀리는 이벤트를 얻기
Lock screen 이 풀릴때 Intent.ACTION_USER_PRESENT 가 broadcast 된다.
- private class UnlockReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (action.equals(Intent.ACTION_USER_PRESENT)) {
- resuming(); // 실제 작업
- if (unlockReceiver != null) {
- unregisterReceiver(unlockReceiver);
- unlockReceiver = null;
- }
- }
- }
- }
3. onResume 함수에서 Lock screen 감지하여 만약 Lock screen 상태이면 위 BroadcastReceiver 를 등록하고 실제 작업을 Lock screen 이 풀리는 시점에 행해지도록 한다.
- @Override
- protected void onResume() {
- super.onResume();
- // check lock screen
- KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
- if (keyguardManager.inKeyguardRestrictedInputMode()) {
- IntentFilter unlockReceiverfilter = new IntentFilter();
- unlockReceiverfilter.addAction(Intent.ACTION_USER_PRESENT);
- unlockReceiver = new UnlockReceiver();
- registerReceiver(unlockReceiver, unlockReceiverfilter);
- } else {
- resuming();
- }
- }
=================================
=================================
=================================
반응형
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
[android] EditText에 자동 포커스 막기 및 초기 키보드 자동 실행 막기 (0) | 2018.02.28 |
---|---|
[android] 안드로이드 마쉬멜로우 버전 이상에서 권한처리하기. (0) | 2017.11.13 |
[android] 안드로이드 android 개발 키보드 옵션 (0) | 2016.08.04 |
[android] 안드로이드/Android XML include 속성 사용 방법 관련 (0) | 2016.07.28 |
[android] 안드로이드 android 상태바 상태, 투명, 색상 관련 (0) | 2016.07.28 |