android要对操作wifi首先要配置关于wifi的权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
由于对硬件操作需要一定的时间,所以我们不能执行完一个操作之后就立刻执行下一个操作,当wifi的状态改变之后系统会发送相关的广播,我们只要注册接收广播就可以了
@Override
protected void onResume(){
super.onResume();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
registerReceiver(broadcastReceiver, intentFilter);
}
@Override
protected void onPause(){
super.onPause();
unregisterReceiver(broadcastReceiver);
}
要对wifi操作,则需要获取一个WifiManager的实例:
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
然后则可以通过wifiManager对wifi进行操作了。
wifi最基础的操作莫过于打开wifi和关闭wifi了:
/**
* 打开WIFI
*/
public void openWifi(){
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}
}
/**
* 关闭WIFI
*/
public void closeWifi(){
if(wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(false);
}
}
当对wifi进行打开关闭操作之后可以收到如下广播:
case WifiManager.WIFI_STATE_CHANGED_ACTION:
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1);
switch(wifiState){
case WifiManager.WIFI_STATE_DISABLED:
break;
case WifiManager.WIFI_STATE_DISABLING:
break;
case