2011-12-19 2 views
0

У меня возникает одна странная проблема, когда я запускаю приложение для Android на устройстве, так что он будет работать на переднем плане или на заднем плане, он не должен потерять соединение WiFi, для что я получил WiFiManager и приобрел блокировку в методе onCreate() службы и выпустил его по методу onDestroy. Но проблема связана с тем, что WiFi включен, когда устройство переходит в спящий режим, так что есть ли способ включить WiFi, даже если устройство переходит в спящий режим. Я не могу получить блокировку, чтобы разбудить устройство, потому что сценарий - наше приложение будет работать всегда, поэтому всякий раз, когда пользователь не будет использовать, устройство должно перейти в спящий режим, но Wi-Fi-соединение всегда должно быть включено.Блокировка WiFi не работает, когда устройство переходит в спящий режим

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

С уважением, Пикс

ответ

1

Попробуйте использовать услуги. Просто вставьте код подключения Wi-Fi в службу, и это будет работать навсегда в фоновом режиме.

+0

Я использую код Wi-Fi внутри службы, но до сих пор, когда устройство переходит в спящий режим, подключение Wi-Fi получить lost.So могли бы вы поделиться некоторые примеры кода, как использовать Wi-Fi подключение внутри сервис. – piks

+1

да, вам нужно зайти в настройки, под WiFi, затем нажать кнопку меню. теперь появляется всплывающее меню, установите политику wifi sleep NEVER. по умолчанию установлено значение «sleep», поэтому вы хотите изменить это. –

+0

Хорошо, так что я понимаю, что мы не можем переопределять настройки WiFi программно, нам нужно изменить настройки на устройстве, чтобы выполнить этот сценарий. – piks

0

Может быть, это поможет ..

private void setNeverSleepPolicy() { 
    try { 
     ContentResolver cr = getContentResolver(); 
     if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN) { 
      int set = android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, set); 
     } else { 
      int set = android.provider.Settings.Global.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.Global.WIFI_SLEEP_POLICY, set); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
Смежные вопросы