2011-12-28 1 views
1

Я хочу, чтобы Wi-Fi включен, когда устройство переходит в спящий режим, я попробовал несколько опций, но ничего не получилось, как получить блокировку Wi-Fi и установить Wi-Fi. Эти параметры не работают, и я попытался с помощью блокировки во время работы, это отлично работает, когда мое приложение работает на переднем плане, но когда приложение работает в фоновом режиме, через некоторое время возникает избыточная ошибка блокировки, и приложение становится уничтоженным, а поверх этого Я не могу использовать блокировку во время разговора, потому что он высушил батарею. Фактическое требование - мое приложение должно работать 24/7, а подключение к серверу всегда остается, потому что сервер может отправлять данные в любое время, но когда устройство переходит в спящий режим wi-fi отключается, поэтому мне нужно установить политику сна wi-fi никогда не после запуска моего приложения и вернуться к нормальной политике, когда приложение будет уничтожено. Я попытался следующий код в моей основной деятельности и запускает приложение и разрешить устройство для перехода в спящий режим и через некоторое время соединение все еще получать закрыт:Как изменить политику сна Wi-Fi программно?

Settings.System.putInt(getContentResolver(), 
Settings.System.WIFI_SLEEP_POLICY, 
Settings.System.WIFI_SLEEP_POLICY_NEVER); 

Поэтому, пожалуйста, помогите мне решить эту проблему.

+1

Святой выбега предложений ... – ElGavilan

ответ

2

Использовать import static android.provider.Settings.System.WIFI_SLEEP_POLICY; вместо строки имени Settings.System.WIFI_SLEEP_POLICY.

Он отлично работает.

+0

Спасибо, его работы :) – piks

+0

привет вентилятор @android, он устарел в последних версиях, так что есть ли альтернатива для последних версий (то есть 5.0 и выше) – user512

0

В моем случае Settings.System.WIFI_SLEEP_POLICY не работает. Я был в состоянии держать Wi-Fi на с PowerManager

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag"); 
wl.acquire(); 

Тогда в OnDestroy() я называю

wl.release(); 
Смежные вопросы