2013-08-20 6 views
6

Mein Hintergrunddienst sendet so schnell wie möglich Nachrichten an einen lokalen Server. Jede Nachricht dauert normalerweise etwa 30 ms. Aber wenn das Telefon im Schlafmodus ist, dauert es etwa 400ms-1000ms (Bildschirm mit der 'richtigen' Wifi-Richtlinie abschalten)Wake + Wifi lock no effect

Innerhalb meines Dienstes verwende ich den folgenden Code, um ein Wifi-Lock und WakeLock zu erwerben.

PowerManager lPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);    
mWakeLock = lPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WakeLockTag"); 

WifiManager lWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { 
    mWifiLock = lWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "LockTag"); 
} else { 
    mWifiLock = lWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "LockTag");    
} 
mWifiLock.acquire(); 
mWakeLock.acquire(); 

Ist es möglich, die gleiche Leistung wie bei eingeschaltetem Bildschirm zu erhalten?

+0

Ich habe ähnliche Probleme mit meinem HTC Wunsch API 8 gesehen, welches Telefon hast du? – Ahmed

+0

Ich bemerkte dies auf Cyanogenmod, Telefon spielt keine Rolle .. –

Antwort

0

Soweit meine Informationen, gibt es ein bekanntes Problem - Einige Geräte sind nicht zuverlässig mit der Kombination von PARTIAL_WAKE_LOCK und WifiLock: WIFI_MODE_FULL_HIGH_PERF.

Es funktioniert nicht gut, wenn der Bildschirm ausgeschaltet ist.

Sie können weiter mit SCREEN_DIM_WAKE_LOCK auf diesem bestimmten Gerät überprüfen.