<转>wifi lock

  Android 对WIFI电源管理的代码主要在WifiService.Java中。如果应用程序想在屏幕被关掉后继续使用WiFi则可以调用 acquireWifiLock来锁住WiFi,该操作会阻止WiFi进入睡眠状态。当应用程序不再使用WiFi时需要调用 releaseWifiLock来释放WiFi。之后WiFi可以进入睡眠状态以节省电源。

  默认情况下当屏幕被关掉以后,如果没有应用程序在使用WiFi,WiFi会在2分钟后进入睡眠状态。这主要是为防止频繁地改变WiFi的电源模式。

1、介绍
WifiLock允许一个应用无线网络广播,以保持清醒。通常情况下,无线网络广播可以关掉时,该用户使用该设备在一段时间。将获得WifiLock收音机直到锁释放。WifiLocks多个应用程序可能持有,电台只允许在关掉时没有WifiLocks被保留在任何应用程序。
在使用WifiLock,仔细考虑一下如果你的应用要求,或能提供无线上网服务的功能在一个移动网络,如果有的话。一个程序,需要下载大文件都应确保WifiLock下载将完成,但是程序或者是偶尔的网络应用不应持有一个WifiLock端口避免影响电池的寿命。
注意,WifiLocks用户级”不能凌驾了无线保真技术使能”设置,也没有飞机模式。他们从简单的把收音机关掉无线保真技术已经在时但装置是无用的。

2、API
android.NET.wifi.WifiManager WifiLock api实现。

2.1获得

直到锁定无线网络电台的释放是打电话来了。
如果这WifiLock,每个电话是reference-counted获得将增加叁考计数,电台将永远被困只要叁考计数是零度以上。
如果这不是reference-counted WifiLock,第一个电话获取锁收音机,但是随后的电话将被忽略。只有一个叫释放将被要求,无论多少次,获得被称为。

2.2释放
开启了无线保真技术广播,允许它关掉时,该装置是无用的。
如果这WifiLock,每个电话是reference-counted释放会递减叁考计数,电台将会开启只有当叁考计数达到零。如果叁考计数下面去了零(即,如果释放被称为一个更大的次数比获得),唯一的例外就是丢出。
如果这不是reference-counted WifiLock,第一次叫牌后释放

java代码:

  1. import android.os.PowerManager;
  2. import android.net.wifi.WifiManager;


  3. public class WifiLockExample{
  4. private final Context mContext;
  5. private PowerManager.WakeLock mWakeLock = null;
  6. private WifiManager.WifiLock mWifiLock = null;
  7. public WifiLockExample(Context context){
  8. mContext = context;
  9. PowerManager powerManager = (PowerManager)
  10. mContext.getSystemService(Context.POWER_SERVICE);
  11. mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_KEY);
  12. mWakeLock.setReferenceCounted(true);

  13. WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
  14. mWifiLock = wifiManager.createWifiLock(WIFILOCK_KEY);
  15. mWifiLock.setReferenceCounted(true);
  16. }


  17. private void acquire(){
  18. mWakeLock.acquire();
  19. mWifiLock.acquire();
  20. }


  21. private void release(){
  22. mWifiLock.release();
  23. mWakeLock.release();
  24. }
  25. }

复制代码

转载于:https://my.oschina.net/u/213372/blog/59875

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值