现在的位置: 首页 > 综合 > 正文

Android如何保持屏幕常亮

2014年09月05日 ⁄ 综合 ⁄ 共 1819字 ⁄ 字号 评论关闭

Android控制屏幕常亮有两种方法:

方法一:

在不同的生命周期调用不用的WakeLock函数可以使系统正常运行(如果不调用WakeLock.release,则屏幕会一直常亮)

首先添加权限:

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

实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
publicclass

test
extendsActivity
 
{
 
    PowerManager
powerManager =
null;
 
    WakeLock
wakeLock =
null;
 
    @Override
 
    protectedvoid

onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
 
        this.setContentView(R.layout.main);
 
         
 
        this.powerManager
= (PowerManager)
this.getSystemService(Context.POWER_SERVICE);
 
        this.wakeLock
=
this.powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK,"My
Lock"
);
 
    }
 
    @Override
 
    protectedvoid

onResume() {
 
        super.onResume();
 
        this.wakeLock.acquire();
 
    }
 
    @Override
 
    protectedvoid

onPause() {
 
        super.onPause();
 
        this.wakeLock.release();
 
    }
 
}

我们再在main代码中写上PowerManager.SCREEN_DIM_WAKE_LOCK,这个是我们android系统提供给我们的,我们要把它用上,这句代码的意思是长亮的意思,这样我们就可以实现了,因为我们在上面已经定义了权限。这样我们就有权利使用这个长亮属性。这就是第一种方法。

方法二:

第二种我们不怎么常用,但有的时候我们也能用得到,我们就来讲讲这第二种方法吧。这种方法我们就在main代码中做一个方法,这个方法就是onCreate(Bundle icicle)我们要在括号里写上参数,这样我们才可以用这个参数,我们在super.onCreate(icicle);这个句的意思就是得到参数,我们也就是实现完了,最后我们在找到LayoutParams.FLAG_KEEP_SCREEN_ON这个android系统提供给我们的属性,这样我们第二个方法就完事了,这个方法就是不用在AndroidManifest.xml:里定义权限了。这样也不比较麻烦,但有时会把参数给忘了,这个是重点,因为这样我们也实现不了效果,这么说的,两个方法有利有弊,用的时候就要看开发者自己的喜好了,喜好哪个就用哪个。


Java代码:

@Override 
protected void onCreate(Bundle icicle) { 
super.onCreate(icicle);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
}

补充一下创建锁时flag的值及意义:

int flags 
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

参考文章地址:点击打开链接

                        点击打开链接

抱歉!评论已关闭.