2012-04-25 4 views
1

무엇인가를 구현하려고하는 Im -일정한 시간 동안 화면을 켜고 끄기

화면이 꺼져 있습니다 (어둡게). 나는 이벤트/브로드 캐스트 또는 뭔가에 의해 15 초 동안 화면을 깨울 수 있기를 원합니다. 그리고 나서 사용자의 개입이 없었다면 화면이 꺼져 야합니다 (어둠) 다시.

어떻게하면됩니까?

+0

배터리를 낭비하는 좋은 방법처럼 들립니다. – zapl

+3

그리고 어떻게 도움이됩니까? – dor506

답변

2

AlarmManager를 사용할 수 있습니다.

는이 같은 선으로 알람을 트리거 : 나는 서비스를 트리거 한 내 경우

Alarm Manager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

pendingServiceIntent = PendingIntent.getService(this.getApplicationContext(), 0, 
      new Intent(this.getApplicationContext(), DataCollectionService.class), 0); 

long intervalInMinutes = 5; // will wake you up every 5 minutes 
long triggerAtTime = System.currentTimeMillis() + 1000*60*intervalInMinutes; 
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingServiceIntent); 

. BroadcastReceiver 또는 원하는 것을 확장 할 수 있습니다. 그런 다음 15 초 이상 화면을 점등하기 위해 가동 잠금을 사용합니다 :

powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
wL = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "LocRepTask"); 
wL.acquire(); // forces processor to stay awake 
// do your stuff..... 
wl.release(); // processor no longer awake because of you 

당신은 안드로이드 매니페스트에 허가 WAKE_LOCK이 필요합니다.

1

이렇게하려면 실행중인 서비스에 partial wake lock이 있어야합니다. 이 서비스는 원하는 간격으로 방송 수신자의 의도를 해고하고 화면을 깨울 수 있습니다. 그러나 제안자가 제안한 것처럼, 이는 CPU가 장치 화면이 꺼져 있어도 계속 켜져 있어야한다는 것을 의미하며, 대기 모드보다 빨리 배터리를 소모합니다.

다른 요구 사항은 PowerManager API로 쉽게 다룰 수 있습니다. 잘하면 충분할 것입니다. 행운을 빕니다!

관련 문제