2016. 3. 30. 15:09ㆍmobile/android
잠든 화면을 깨우는 일은 push 를 받거나 알람을 울리거나 등 사용자가 디바이스를 사용하지 않는 상태에서 앱을 실행해야할 경우 사용할 수 있다.
선행작업 : BroadcastReceiver 등이 선언되어 있어야 한다. (본문에는 생략됨)
잠금 화면 위로 activity (액티비티) 를 띄워줄 수 있다.
잠금화면 위에서 실행하고 싶은 activity (액티비티) 의 onCreate 함수에 해당 옵션을 준다.
1
2
3
4 |
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); |
cs |
FLAG_KEEP_SCREEN_ON : Screen 을 켜진 상태로 유지
FLAG_DISMISS_KEYGUARD : Keyguard를 해지
FLAG_TURN_SCREEN_ON : Screen On
FLAG_SHOW_WHEN_LOCKED : Lock 화면 위로 실행
잠든 화면을 깨워 보자.
PowerManager 클래스를 이용한다.
최초 push 를 받는 곳이나 BroadcastReceiver 클래스가 있을 것이다.
거기에서 실행하면 된다.
BroadcastReceiver 사용중이라면 1# 은 전역변수로, 3# ~ 18# 은 onReceive에 추가하면된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
private static PowerManager.WakeLock sCpuWakeLock;
if (sCpuWakeLock != null) {
return;
}
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
sCpuWakeLock = pm.newWakeLock(
PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE, "hi");
sCpuWakeLock.acquire();
if (sCpuWakeLock != null) {
sCpuWakeLock.release();
sCpuWakeLock = null;
} |
cs |
1# : PowerManager.WakeLock 빈객체 선언한다.
6# : 시스템에서 PowerManager 객체를 받아온다.
7# : PowerManager 객체에 제어레벨을 선언한다.
12# : acquire 함수를 실행하여 앱을 깨운다. ( cpu 를 획득하는 ? 뭐 이런내용을 본적이 있어요)
16# : acquire 함수를 사용하였으면 꼭 release 를 해주어야 한다. cpu를 점유하게 되어 배터리 소모나 메모리 소모에 영향을 미칠 수 있다.
다음과 같이 manifests에 permission (퍼미션) 을 선언해주어야 한다.
1 |
<uses-permission android:name="android.permission.WAKE_LOCK" /> |
cs |
위 방법을 사용하여 잠든 디바이스를 깨우고 특정 activity를 잠금화면 위로 실행시킬 수 있다.
'mobile > android' 카테고리의 다른 글
android 현재 WebView에서 외부 페이지 불러오기 / WebView 새창 띄우지 않기 / WebViewClient (0) | 2016.04.20 |
---|---|
android webview 에서 카메라 호출 및 사진첩(갤러리) 호출하여 이미지 파일 업로드 하기 (23) | 2016.04.14 |
android html5 스마트폰 카메라와 연결하기, 사진(갤러리) 및 동영상 찍기 예제 ( URL.createObjectURL ) (0) | 2016.04.08 |
android GCM 클라이언트, 서버 완벽 구현 예제 4 [ 서버 셋팅, GCM 설정 ] (121) | 2016.04.07 |
android GCM 클라이언트, 서버 완벽 구현 예제 3 [ 클라이언트 셋팅, GCM 설정 ] (5) | 2016.04.07 |
android GCM 클라이언트, 서버 완벽 구현 예제 2 [ 클라이언트 셋팅, GCM 설정 ] (5) | 2016.04.07 |
android GCM 클라이언트, 서버 완벽 구현 예제 1 [ 사전 준비 ] (1) | 2016.04.07 |
Android OCR 한글 및 영문 인식 Tesseract 샘플 프로젝트 테스트 (110) | 2016.04.06 |
android | 디바이스 부팅시 앱 실행하는 방법 / 재부팅 시 어플 실행하는 방법 (0) | 2016.03.30 |
android webview url 가로채기 / 네이티브에서 작업 | android (0) | 2016.01.05 |