Screen On/Off 이벤트 받기
슬립모드에 들어갈때와, 슬립모드 해제할때에 무언가 동작을 하기 위해서는 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)) {
...
}
}
}