Как уберечь процессор от «сна» при выключенном экране в Android? - PullRequest
15 голосов
/ 01 октября 2011

У меня есть приложение, в котором я отправляю данные по сети через WiFI.Все нормально, пока я не выключу дисплей или устройство не перейдет в «спящий режим».Я уже блокирую WiFi, однако кажется случаем, когда скорость процессора снижается во время сна, что приводит к тому, что моя потоковая передача не работает должным образом (то есть пакеты не передаются так быстро, как я быкак и в случае, когда устройство не спит).

Я знаю, что, возможно, я могу / возможно должен решить эту проблему на уровне протокола, однако, что , возможно, также не может быть возможным...

Есть ли какой-либо способ , чтобы "не дать процессору перейти в" спящий режим ", когда экран выключен"?Если так, то как?Если нет, то есть ли какие-либо советы о том, как поддерживать постоянную скорость моего потока WiFi независимо от того, находится ли устройство в спящем режиме или нет?

Ответы [ 2 ]

13 голосов
/ 01 октября 2011

Получите PARTIAL_WAKE_LOCK из PowerManager.Вам также необходимо добавить разрешение WAKE_LOCK в манифест.

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Tag"); 
wl.acquire();
//do what you need to do
wl.release(); 
10 голосов
/ 11 октября 2011

Итак, после гораздо большего количества исследований и экспериментов кажется, что проблема real заключается в том, что, по крайней мере, на некоторых телефонах их WiFi переходит в режим «частичного сна» ДАЖЕ ЕСЛИ вы взяли блокировку WiFi. Похоже, это то, для чего был изобретен флаг 'WIFI_MODE_FULL_HIGH_PERF' при захвате блокировки WiFi ... к сожалению, этот флаг доступен только на некоторых устройствах / версиях Android (я понятия не имею, что, но он не был доступен мне). Поэтому, это не исправление для всех устройств.

Единственное «решение» (которое фактически является клуджем), по-видимому, заключается в том, чтобы «определить, когда экран выключен, а затем установить будильник, который сразу же включит экран». Ссылки, которые немного помогли с этим:

Как сохранить задачу в живом состоянии после сна телефона?

и

http://android.modaco.com/topic/330272-screen-off-wifi-off/

Я надеюсь, что это поможет людям, которые испытывают сбои в работе WiFi, когда телефон переходит в спящий режим / экран выключен (и телефон отключен / отключен [например, вы не увидите этого эффекта при подключении к adb; только , когда телефон работает без подключения к нему]).

...