经过查看网上的资料,知道在手机屏幕关闭之后,并且其他的应用程序没有在使用wifi的时候,系统大概在两分钟之后,会关闭wifi,使得wifi处于睡眠状态。
这样的做法,有利于电源能量的节省和延长电池寿命等。
android为wifi提供了一种叫WifiLock的锁,能够阻止wifi进入睡眠状态,使wifi一直处于活跃状态。这种锁,在下载一个较大的文件的时候,比较适合使用。
WifiLock Allows an application to keep the Wi-Fi radio awake.
一、创建一个wifiLock
1.
/**
*
* @param lockName
* 锁的名字
* @return wifiLock
*/
public WifiLock createWifiLock(String lockName)
{
wifiLock = wifiManager.createWifiLock(lockName);
return wifiLock;
}
2.
/**
*
* @param lockName
* 锁的名称
* @param lockType
*
* WIFI_MODE_FULL == 1 <br/>
* 扫描,自动的尝试去连接一个曾经配置过的点<br />
* WIFI_MODE_SCAN_ONLY == 2 <br/>
* 只剩下扫描<br />
* WIFI_MODE_FULL_HIGH_PERF = 3 <br/>
* 在第一种模式的基础上,保持最佳性能<br />
* @return wifiLock
*/
public WifiLock createWifiLock(String lockName, int lockType)
{
wifiLock = wifiManager.createWifiLock(lockType, lockName);
return wifiLock;
}
二、给wifi添加锁
/**
* 加上锁
*/
public void lockWifi()
{
wifiLock.acquire();
}
三、给wifi释放锁
/**
* 释放锁
*/
public void releaseLock()
{
if (wifiLock.isHeld())
{
wifiLock.release();
}
}
四、判断wifi是否被lock锁持用
/**
* 判断wifi的锁是否持有
*
* @return
*/
public boolean isHeld()
{
return wifiLock.isHeld();
}