2010-10-14 9 views
67

Uso de la clase Conectividad Gestor podemos obtener acceso a cualquiera de la red de Internet Wi-Fi o:Android: Cómo activar/desactivar Wi-Fi o conexión a Internet mediante programación

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 

// ARE WE CONNECTED TO THE NET 
if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || 
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) { 
    // ... 
} 

donde 0 y 1 se refiere respectivamente a móvil y conexión wifi

Si mi dispositivo Android está conectado a ambos, ¿podemos cambiar entre cualquiera de las redes o podemos deshabilitar cualquiera de las redes? Como el uso de una función:

connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED); 

Respuesta

147

Sé de activar o desactivar Wi-Fi:

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(status); 

donde el estado puede ser true o false según el requisito.

Editar:

También necesita los siguientes permisos en el archivo de manifiesto: Solución

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

+2

¡Hola! ¿Existe la misma manera de habilitar las redes móviles? – Yarovoy

+43

También en el manifiesto: '' –

+2

¿Esto difiere de wifiManager.reconnect()? ¿Qué pasa con wifiManager.reassociate()? También en el enfoque anterior si desea reiniciar el WiFi, ¿podría llamar a wifiManager.setWifiEnabled (false) y wifiManager.setWifiEnabled (true) de nuevo? ¿O debería deshabilitarlo primero, luego esperar alguna señal (receptor de difusión, etc.) antes de volver a habilitarlo? – Marchy

10

complet ..

try { 
WifiManager wifi = (WifiManager) 
context.getSystemService(Context.WIFI_SERVICE); 

WifiConfiguration wc = new WifiConfiguration(); 
wc.SSID = "\"SSIDName\""; 
wc.preSharedKey = "\"password\""; 
wc.hiddenSSID = true; 
wc.status = WifiConfiguration.Status.ENABLED; 

        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 


    boolean b=wifi.isWifiEnabled(); 
    if(b){ 
    wifi.setWifiEnabled(false); 
    Toast.makeText(context,"yes", Toast.LENGTH_SHORT).show(); 
    }else 
    { 
    wifi.setWifiEnabled(true); 
    Toast.makeText(context, "no", Toast.LENGTH_SHORT).show(); 
    } 
    //Log.d("WifiPreference", "enableNetwork returned " + b); 

      } catch (Exception e) { 

       e.printStackTrace(); 
      } 

....... ..................................... http://amitkumar-android.blogspot.com/p/installation-steps.html

+1

Falta la llamada para configurar el administrador de wifi con la configuración wifi: wifi.addNetwork (wc); –

+3

¿Por qué codificaría su SSID y contraseña? No es Buena idea. – lifeson106

1

agregar este permiso en su manifiesto y que utiliza este código anterior para cambiar WiFi Estado:

<!--permission ge enable and disable WIFI in android--> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
3

Para habilitar bloquear Wifi utilizar la clase WifiManager para obtener sistema (dispositivo Android) los servicios de Wi-Fi:

WifiManager wifi =(WifiManager)getSystemService(Context.WIFI_SERVICE); 

Ahora el objeto de la clase wifiWifiManager se utiliza para obtener el estado de Wi-Fi:

if(wifi.isWifiEnabled()) 
    //Perform Operation 
else 
    //Other Operation 

Y lo más importante no se olvide de dar el siguiente permiso en su Android File Manifiesto:

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

para obtener información detallada y ejemplos de código completo del proyecto para activar/desactivar el WiFi en la visita androide my website link.

26

Para habilitar Wi-Fi:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
wifi.setWifiEnabled(true); 

Para desactivar Wi-Fi:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
wifi.setWifiEnabled(false); 

Nota: Para acceder con el estado de Wi-Fi, tenemos que añadir siguientes permisos dentro de la AndroidManifest.archivo xml:

android.permission.ACCESS_WIFI_STATE 
android.permission.UPDATE_DEVICE_STATS 
android.permission.CHANGE_WIFI_STATE 
+4

solo es necesario CHANGE_WIFI_STATE, al menos en Android 4.2 – voghDev

+1

UPDATE_DEVICE_STATS es solo para aplicaciones de sistema – marienke

Cuestiones relacionadas