2012-01-03 38 views
7

Tôi đang cố tạo tiện ích để bật và tắt wifi.Trạng thái WiFi không bật cho phép

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

Đây là mã tôi đang sử dụng phần vô hiệu hoạt động tốt nhưng phần cho phép không hoạt động tốt. Ngay sau khi kích hoạt wifi tôi đang in trạng thái wifi tôi nhận được nó là sai.

Trả lời

9

Đây là cách bật và tắt wifi trong Android.

Trước tiên, bạn cần khai báo sau trong file manifest của bạn

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

Sau khi thực hiện nó mà trên lớp Hoạt động của bạn

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

}

Giải thích

.210

Lấy dịch vụ Wifi khỏi hệ thống của chúng tôi

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

Kiểm tra wifi của chúng tôi hiện đang bật hay tắt

if(wifiManager.isWifiEnabled()){ 

Bật/tắt wifi của chúng tôi wifiManager.setWifiEnabled();

Reference

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 chỉ dành cho ứng dụng hệ thống – Superbiji

+0

Ngoài 'UPDATE_DEVICE_STATS' (mà @Superbiji là đúng, không nên sử dụng) các quyền khác là mức 'bình thường'. Vì vậy, Android sẽ không hét lên với bạn nếu bạn cố gắng làm điều gì đó đòi hỏi những điều khoản đó. IIRC bạn thậm chí sẽ không nhìn thấy bất cứ điều gì trong logcat. – tir38

Các vấn đề liên quan