WIFI是无线通信协议,可以允许手机直接连接到无线网络。在现在3G资费还比较贵的情况下,WIFI对于手机来说是很重要的,我们可以很方便的下载软件,音乐等资源。Android手机必须要有WIFI网卡才能支持WIFI。Android应用程序有时候需要对WIFI网卡进行操作,从而操作WIFI网络。

WIFI网卡有一些状态,由一系列的×××常量来表示。

常量名 常量值 网卡状态
WIFI_STATE_DISABLED 1 WIFI网卡不可用
WIFI_STATE_DISABLING 0 WIFI正在关闭
WIFI_STATE_ENABLED 3 WIFI网卡可用
WIFI_STATE_ENABLING 2 WIFI网卡正在打开
WIFI_STATE_UNKNOWN 4 未知网卡状态

 

在应用程序中操作WIFI网卡一定的权限。
WIFI 的主要操作权限有四个:
CHANGE_NETWORK_STATE :允许修改网络状态的权限。
CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。
ACCESS_NETWORK_STATE :允许访问网络状态的权限。
ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。
在AndroidManifest.xml文件中添加权限。

 

 
    
  1. XML/HTML代码  
  2.       
  3. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE">uses-permission>          
  4. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE">uses-permission>          
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">uses-permission>          
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE">uses-permission>     

改变WIFI网卡的状态
对WIFI网卡进行操作需要通过WifiManager对象来进行,获取该对象的方法如下:
WifiManager wifiManger=(WifiManger)Context.getSystemService(Service.WIFI-SERVICE);
打开WIFI网卡
wifiManager.setWifiEnabled(true);
关闭WIFI网卡
wifiManager.setWifiEnabled(false);
获取网卡当前的状态
wifiManager.getWifiState();

需要说明的是由于Android模拟器不支持WIFI和蓝牙所以程序执行时返回的网卡状态都是WIFI_STATE_UNKNOWN:网卡未知的状态。此程序需要在真机上进行调试才会显示正确的运行结果。

打开WIFI网卡:

 

 
    
  1. Java代码  
  2.       
  3. WifiManager wifiManager =(WifiManager).getSystemService(Context.WIFI_SERVICE);            
  4. wifiManager.setWifiEnabled(true);            
  5.       

关闭WIFI网卡:

 

 
    
  1. Java代码  
  2.       
  3. WifiManager wifiManager =(WifiManager).getSystemService(Context.WIFI_SERVICE);              
  4. wifiManager.setWifiEnabled(false);