转自:http://blog.youkuaiyun.com/zidan_2011/article/details/7779398
经过查看网上的资料,知道在手机屏幕关闭之后,并且其他的应用程序没有在使用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();
- }
本文介绍了Android中如何使用WifiLock来防止Wi-Fi进入睡眠状态,适用于长时间数据传输场景。包括创建锁、加锁、解锁及判断锁状态的方法。
1515

被折叠的 条评论
为什么被折叠?



