2012-01-03 18 views
7

Estoy intentando crear un widget para habilitar y deshabilitar el wifi.Estado de WiFi no habilitando

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()); 
     } 

Este es el código que estoy utilizando la parte incapacitante está trabajando bien, pero la parte que permite no está funcionando bien. Poco después de habilitar el wifi, estoy imprimiendo el estado del wifi. Lo estoy obteniendo como falso.

Respuesta

9

Aquí se explica cómo encender y apagar wifi en android.

En primer lugar tiene que declarar lo siguiente en el archivo de manifiesto

<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> 

Después de hacerlo que en su clase de actividad

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); 
} 

}

Explicación

obtener el servicio Wi-Fi de nuestro sistema

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

Comprobar la nuestra wifi está actualmente activada o desactivada

if(wifiManager.isWifiEnabled()){ 

Encender/apagar nuestra wifi wifiManager.setWifiEnabled();

Referencia

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 es solo para la aplicación del sistema – Superbiji

+0

Además de 'UPDATE_DEVICE_STATS' (que @Superbiji tiene razón, no debe usarse), los otros permisos son' normales'. Entonces, Android no te gritará si intentas hacer algo que requiera esos permisos. IIRC ni siquiera verá nada en logcat. – tir38

Cuestiones relacionadas