2012-12-05 1 views
1

나는 안드로이드 응용 프로그램을 작성했으며 현재 문제가 있습니다.Android : 어떤 이벤트가 장치를 깨우습니까

내 응용 프로그램이 실행 중이고 장치가 꺼져있는 경우 약 8 초 후에 깨어나서 화면이 켜지고 응용 프로그램이 다시 표시됩니다.

내 질문 : 브로드 캐스트 인 텐트를 처리하는 것과 같은 이벤트 또는 처리 제약 조건으로 인해 장치를 깨울 수 있습니까?

편집 : RCT_WAKEUP으로 알람이 울리면 기기 화면이 켜 집니까?

미리 감사드립니다.

답변

1

AlarmManager는 실제로 화면을 켭니다. 대신 wakelock을 사용할 수 있습니다.

PowerManager.WakeLock wakelock; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ......... 

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK 
       | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AlarmReceiver"); 
    wakelock.acquire();  
} 

당신이 활동을 마치면 바로 가동 잠금 해제하십시오 :

<uses-permission android:name="android.permission.WAKE_LOCK"/> 
: 당신은 또한 당신의 매니페스트 파일에있는 웨이크 잠금 권한을 추가 할 필요가

@Override 
protected void onStop() { 
    super.onStop(); 
    wakelock.release(); 
} 

또는이 추가 권한을 포함하고 싶지 않으면 wakelock을 사용하는 대신 활동에 다음 코드를 사용할 수 있습니다.

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | 
       WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
       WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
       WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

안녕하세요, 귀하의 답변에 감사드립니다. 하지만 내 질문은 장치를 깨우는 방법과 화면을 켜는 방법이 아니었지만 이벤트는 내 장치를 깨울 것입니다. 나는 내 장치를 깨우고 싶지 않다. 전화기가 아니라 타블렛이 아니라 사용자 정의 장치이며, 자발적으로 켜지 않고 일정 시간 동안 잠자기 모드에 있어야한다. – robotniko