认识下Wifi的几种状态:
1. wifiManager.WIFI_STATE_DISABLED ; (1) 关闭
2. wifiManager..WIFI_STATE_ENABLED ; (3) 打开
3. wifiManager..WIFI_STATE_DISABLING ;(0) 关闭中
4 wifiManager..WIFI_STATE_ENABLING ; (2) 打开中
知道这几种状态后就可以只用它了
首先在manifest中添加权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
这很重要!!!
接下来声明wifiManager,并获取对象。
(本代码在Activity中编写,若不在Activity中,需要在getSystemService方法前添加context.)
private WifiManager wifiManager=null;
* 获取WIFI服务
*/
wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
得到对象后直接使用就可以了,它的使用很简单:
//关闭wifi
wifiManager.setWifiEnabled(false);
//打开wifi
wifiManager.setWifiEnabled(true);
注意:wifi并不能马上关闭或者打开,这个过程是需要一段时间的。因此如果需要在wifi打开后执行某个操作需要等待这个打开的过程
下面就是一个例子:等待Wifi打开后执行一些方法
/**
* wifi打开后执行某个操作
*/
private void onWifiOpenDoing(){
while(!isWifiOpened()){
try{
//为了避免程序一直while循环,让它睡个100毫秒在检测……
Thread.currentThread();
Thread.sleep(100);
}
catch(InterruptedException ie){
}
}
//在wifi打开后执行的操作都写在这下面
Log.i("log", "wifi已经打开");
}
/**
* 判断wifi是否已经打开
* @return true:已打开、false:未打开
*/
public boolean isWifiOpened(){
int status=wifiManager.getWifiState();
if (status == WifiManager.WIFI_STATE_ENABLED ) {
//wifi已经打开
return true;
}else {
return false;
}
}
这里只是简单描述了Wifi的打开和关闭的方法,代码粗糙请勿见怪...
文章若有误,请多指教