您的位置:首页 > 移动开发 > Android开发

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

2013-07-10 17:19 381 查看
最近研究音频播放 看到 AsyncPlayer 这个类的实现 确实里面做的细节挺值得学习

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

把音频信息封装称Conmmad

[java] view
plaincopy

private static final class Command {

int code;

Context context;

Uri uri;

boolean looping;

int stream;

long requestTime;

public String toString() {

return "{ code=" + code + " looping=" + looping + " stream=" + stream

+ " uri=" + uri + " }";

}

}

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

[c-sharp] view
plaincopy

private LinkedList<Command> mCmdQueue = new LinkedList();

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

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


PowerManagerPowerManager.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
plaincopy

private void acquireWakeLock() {

if (mWakeLock != null) {

mWakeLock.acquire();

}

}

private void releaseWakeLock() {

if (mWakeLock != null) {

mWakeLock.release();

}

}

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

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

[c-sharp] view
plaincopy

PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);

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
plaincopy

<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.DEVICE_POWER" />

这就OK了!!!!

转自:/article/2784808.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: