2012-01-03 94 views
7

我正在嘗試創建一個用於啓用和禁用wifi的小部件。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()); 
     } 

這是我使用禁用部分的代碼工作正常,但啓用部分工作不正常。在啓用無線網絡後不久,我正在打印無線網絡狀態,我將其視爲假。

回答

9

這裏是如何打開和關閉android的wifi。

首先,你需要申報清單檔案中的

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

下面做的是在你的Activity類

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

}

解釋後

從我們的系統

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

檢查獲得WiFi服務目前我們的WiFi打開或關閉

if(wifiManager.isWifiEnabled()){ 

開啓/關閉無線網絡我們 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 2014-12-09 03:56:13

+0

除了'UPDATE_DEVICE_STATS'(其中@Superbiji是正確的,不應該使用),其他權限是「正常」級別。因此,如果您嘗試執行需要這些權限的內容,Android不會對您大吼。 IIRC你甚至不會在logcat中看到任何東西。 – tir38 2017-04-01 19:47:45

相關問題