Android进阶:保持android手机屏幕灯持续高亮 以及键盘灯高亮

最近研究音频播放 看到 AsyncPlayer 这个类的实现 确实里面做的细节挺值得学习

 

那首先大概看下这个类吧 这个类实现了音频异步播放的功能

 

把音频信息封装称Conmmad

 

[java]  view plain copy
  1. private static final class Command {  
  2.         int code;  
  3.         Context context;  
  4.         Uri uri;  
  5.         boolean looping;  
  6.         int stream;  
  7.         long requestTime;  
  8.         public String toString() {  
  9.             return "{ code=" + code + " looping=" + looping + " stream=" + stream  
  10.                     + " uri=" + uri + " }";  
  11.         }  
  12.     }  

 

将所有的音频信息存放入队列中

 

[c-sharp]  view plain copy
  1. private LinkedList<Command> mCmdQueue = new LinkedList();  

 

那么播放的功能就交给另外一个线程吧

 

接着进入主题看看怎么实现屏幕高亮的

 

PowerManager 和 PowerManager.WakeLock 这个类

 

PowerManager:This class gives you control of the power state of the device.

PowerManager.WakeLock: lets you say that you need to have the device on.

 

android通过lock锁对电源进行控制 来看两个方法

 

[java]  view plain copy
  1. private void acquireWakeLock() {  
  2.         if (mWakeLock != null) {  
  3.             mWakeLock.acquire();  
  4.         }  
  5.     }  
  6.     private void releaseWakeLock() {  
  7.         if (mWakeLock != null) {  
  8.             mWakeLock.release();  
  9.         }  
  10.     }  

 

这样就可以实现对电源的控制了。。so简单

 

这之前还需要做一些初始化工作

 

[c-sharp]  view plain copy
  1. PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);  
  2.         mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, mTag);  

 

newWakeLock 方法就俩参数,后面一个就是日志的TAG了。。前面一个才是主要的  可以设置本Activity的亮度级别

 

int flags 

各种锁的类型对CPU 、屏幕、键盘的影响:

PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。

SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯

SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯

FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

 

这个操作还要加权限的

 

[c-sharp]  view plain copy
  1. <uses-permission android:name="android.permission.WAKE_LOCK" />  
  2. <uses-permission android:name="android.permission.DEVICE_POWER" />  

 

这就OK了!!!!

转自:http://blog.csdn.net/wanglong0537/article/details/6326161

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值