经过查看网上的资料,知道在手机屏幕关闭之后,并且其他的应用程序没有在使用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;
- }
- /**
- *
- * @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();
- }