슬립모드에 들어갈때와, 슬립모드 해제할때에 무언가 동작을 하기 위해서는 2가지 이벤트를 받아야 한다.
android.intent.action.SCREEN_ON
android.intent.action.SCREEN_OFF
이 두가지 이벤트는 안드로이드 정책 변경으로 인해 Manifest에 기술해서는 받을 수 없고, registerReceiver()를 이용하여 동적으로 등록해야만 정상적으로 이벤트를 받을 수 있다.
다음처럼 등록을 하여 사용하였다.
ScreenOnReceiver screenOnReceiver = new ScreenOnReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.SCREEN_ON");
filter.addAction("android.intent.action.SCREEN_OFF");
registerReceiver(screenOnReceiver, filter);
class ScreenOnReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d("SmartPortal", "ScreenOnReceiver, onReceive:" + action);
if (action.equals(Intent.ACTION_SCREEN_ON)) {
...
}
else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
...
}
}
}
'develop > android' 카테고리의 다른 글
root권한 없이 adb pull로 파일 가져오기 (0) | 2015.12.16 |
---|---|
ImageButton enable 설정 (0) | 2015.12.15 |
webview youtube 백그라운드 재생 정책위반 해결 (1) | 2015.10.23 |
특정 모듈만 build 하기 (0) | 2014.10.14 |
JAR에 포함된 apache log4j를 android용으로 변경 (0) | 2014.03.27 |