2012-01-03 2 views
7

Я пытаюсь создать виджет для включения и отключения Wi-Fi.Состояние WiFi не разрешено

if(myWifiManager.isWifiEnabled()){ 
      System.out.println("Toggle Wifi Enabled going to disable"); 
      myWifiManager.setWifiEnabled(false); 
     } 
     else{ 
      System.out.println("Wifi Disabled going to enable "); 

      myWifiManager.setWifiEnabled(true); 
      System.out.println("WI: "+myWifiManager.isWifiEnabled()); 
     } 

Это код, который я использую для отключения, работает нормально, но разрешающая часть не работает нормально. Вскоре после включения Wi-Fi я печатаю состояние wifi, я получаю его как ложное.

ответ

9

Вот как включить и выключить Wi-Fi в Android.

Сначала вы должны объявить следующее в вашем файле манифеста

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 

После делать это, что на классе активность

private WifiManager wifiManager; 
@Override 
public void onCreate(Bundle icicle) { 
.................... 
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
if(wifiManager.isWifiEnabled()){ 
wifiManager.setWifiEnabled(false); 
}else{ 
wifiManager.setWifiEnabled(true); 
} 

}

Объяснение

Получить услугу Wi-Fi от нашей системы

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 

Проверьте наш WiFi в настоящее время включен или выключен

if(wifiManager.isWifiEnabled()){ 

Включение/выключение нашего WiFi wifiManager.setWifiEnabled();

Ссылка

WifiEnabler

http://google-androidlovers.blogspot.com/2012/01/scan-for-wireless-networks-in-android.html

http://www.java2s.com/Open-Source/Android/android-platform-apps/Settings/com/android/settings/wifi/WifiApEnabler.java.htm

+2

UPDATE_DEVICE_STATS только для системного приложения – Superbiji

+0

Помимо 'UPDATE_DEVICE_STATS' (который не подходит для @Superbiji, другие разрешения являются« нормальными »уровнями. Поэтому Android не будет кричать на вас, если вы попытаетесь сделать что-то, требующее этих разрешений. IIRC вы даже ничего не увидите в логарифме. – tir38

Смежные вопросы