2011-02-27 5 views
0

검색 한 결과이 질문에 대한 답변을 찾을 수 없습니다. 나는 항상 실행되는 앱을 개발 중이다. WiFi를 사용하고 있으며 기기가 잠자기 상태가 될 때까지 모든 것이 올바르게 작동합니다. 하나의 장치가 멀티 캐스트 패킷을 보내고 다른 장치는 패킷을 가져와 깨워 야하지만 그렇지 않습니다. 현재 네트워크 스레드는 내 메인 클래스의 StartService()에 의해 시작된 서비스 스레드에서 시작됩니다. 서비스에서 나는 wifi 잠금 장치와 wifi 멀티 캐스트 잠금 장치를 사용하여 장치가 잠자기 상태 일 때 wifi 및 멀티 캐스트가 "켜져 있어야"합니다. 믹스에 부분 웨이크 잠금 장치를 추가하려고했지만 여전히 아무 것도 작동하지 않습니다. 어떤 아이디어? 나는 지금 안드로이드 2.3.3을 실행하고있는 2 개의 넥서스에 devleoping하고있다.잠자기 및 잠자기 모드에서 WiFi 데이터 허용

답변

1

WakeLock에서 PowerManager.ACQUIRE_CAUSES_WAKEUP 플래그를 설정해야하지만 PowerManager.ACQUIRE_CAUSES_WAKEUP 플래그는 PowerManager.PARTIAL_WAKE_LOCK에서 작동하지 않지만 PowerManager.SCREEN_DIM_WAKE_LOCK에서 작동해야합니다. WakeLock에서 acquire()를 호출하면 코드 아래에서 장치의 디스플레이와 CPU를 깨우십시오. 5 초간 잠자기하면 WiFi를 깨울 충분한 시간이 주어집니다.

WakeLock lock = ((PowerManager) getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK 
        | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); 
lock.acquire(); 
try { 
    Thread.sleep(5000); 
} catch (InterruptedException e) {     
} 
// do work here.. 
lock.release() 
관련 문제