2012-01-03 18 views
7

Sto cercando di creare un widget per abilitare e disabilitare il wifi.stato WiFi non sta permettendo

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

Questo è il codice che sto utilizzando, la parte di disattivazione funziona correttamente ma la parte di abilitazione non funziona correttamente. Subito dopo aver abilitato il wifi sto stampando lo stato wifi sto ottenendo come falsa.

risposta

9

Ecco come accendere e spegnere wifi in Android.

Per prima cosa è necessario dichiarare quanto segue nel file manifesto

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

Dopo aver fatto in modo che il vostro Classe di attività

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

}

Spiegazione

.210

ottenere il servizio Wifi dal nostro sistema

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

Controllare il nostro WiFi è attualmente attivata o disattivata

if(wifiManager.isWifiEnabled()){ 

Accendere/spegnere il nostro wifi wifiManager.setWifiEnabled();

Riferimento

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 è solo per l'applicazione di sistema – Superbiji

+0

Oltre a "UPDATE_DEVICE_STATS" (che @Superbiji ha ragione, non deve essere utilizzato) le altre autorizzazioni sono di livello 'normale'. Così Android non sarà urlare a voi se si tenta di fare qualcosa che richiede tali autorizzazioni. IIRC non sarà nemmeno a vedere nulla in logcat. – tir38

Problemi correlati